首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在php中为文件名设置表的列名

在php中为文件名设置表的列名
EN

Stack Overflow用户
提问于 2018-06-02 02:39:55
回答 1查看 146关注 0票数 -1

将表的列名设置为文件名

这是我的代码,它正在创建名为"SELECT Name_of_company FROM companyinformation WHERE“$id”in my folder“的文件。

代码语言:javascript
复制
    <?php
$con = mysqli_connect("127.0.0.1","root","","dbname");
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
session_start();
$id=$_GET['id'];
$sql='
SELECT Name_of_company 
  FROM companyinformation 
 WHERE id="$id"
';
$result=mysqli_query($con,$sql);
$rows=mysqli_fetch_array($result);
echo $sql;


$createfile=$rows.".txt";

$email=$_SESSION['coll'];
$rnumber=$_SESSION['roll_number'];
$rollnumber="Roll Number \n";
$Email="Email Address ";
$newline="\n";
$rollema=$Email.$rollnumber;

$myfile = fopen($createfile, "a") or die("Unable to open file!");
fwrite($myfile, $email);
fwrite($myfile," ");
fwrite($myfile, $rnumber);
fwrite($myfile, $newline);
fclose($myfile);
//echo "<script>alert('Register Successfully');window.open('studentloginpage.php','_self');</script>";
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-02 02:46:02

mysqli_fetch_array返回一个数组(如果没有行,则返回FALSE )。

数组中的每个条目都包含结果集中单个列的值(对于所读取的一行)。

通过列的名称引用数组的元素。

代码语言:javascript
复制
$createfile = $rows['Name_of_company'].".txt";
                   ^^^^^^^^^^^^^^^^^^^

此外,请考虑测试返回

代码语言:javascript
复制
$rows=mysqli_fetch_array($result);

if(! $rows) {
   // we got a row, continue processing
   ...
} else {
   // no row fetched
   ...
}

(此外,$rows也是复数。它只是一个变量名,我们可以将其命名为$fargedlybarp或其他名称。但我倾向于将名称设置为单数,例如($row)而不是复数,以向未来的读者表明我们希望它包含单行。)

代码语言:javascript
复制
if( ! $row = mysqli_fetch_array($result) ) {
   // we got a row, continue processing
   ... 
} else {
   // no row fetched
   ...
}

后续

正如@tadman指出的那样,这里没有插值:

代码语言:javascript
复制
$sql = 'SELECT Name_of_company FROM companyinformation WHERE id="$id"';

单引号是一个字符串文字,它不做任何变量解释。

很可能,我们希望将$id变量的值合并到SQL文本中。如果这是一个整数值,那么我们可以这样做:

代码语言:javascript
复制
$sql = 'SELECT Name_of_company FROM companyinformation WHERE id='''
     . intval( $id ) 
     . '''' ;

否则,需要正确转义$id的值

代码语言:javascript
复制
$sql = 'SELECT Name_of_company FROM companyinformation WHERE id='''
     . mysqli_real_escape_string($con, $id )
     . '''' ;

正如@tadman还建议的那样,使用带有绑定占位符的预准备语句是最佳实践模式。

https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet

代码语言:javascript
复制
$sql = 'SELECT Name_of_company FROM companyinformation WHERE id = ?';

准备,bind_param,执行,..。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50649328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档