-2

我想从表“学生”中选择行,其中用户名=来自 php 文件的名称。我如何打印返回的行?我使用了这个,但没有打印出值(没有结果出现)

$result=mysql_query("select name from students where name=$name);


if($result){

while($row=mysql_fetch_array($result))
{
echo " $row['name'];
}
}
4

4 回答 4

3

如果$name不是数字,MySQL 会认为它是一个列,并且该列可能不存在,因此您将收到错误消息。在它周围加上引号,例如'$name'. 您还应该先调用mysql_real_escape_stringon $name,并且应该检查mysql_queryis not的结果false(如果是,请检查mysql_error)。

您还缺少一些引号。


更好的是,停止使用ext/mysql并改用 PDO。然后你可以像这样编写查询

select name from students where name = ?

并且转义和引用添加会自动为您完成。

于 2013-02-06T19:06:36.043 回答
1

如果您使用字符串,请使用引号,否则它将被视为列名

$result=mysql_query("select name from students where name='$name'");

笔记

  1. 整个ext/mysqlPHP 扩展提供了所有以 mysql_ 为前缀的函数,从 PHP v5.5.0 开始正式弃用,并将在未来删除。所以使用PDO或者MySQLi

好读

  1. 不推荐使用 mysql 扩展并将在将来删除:请改用 mysqli 或 PDO
  2. MySQL 开发人员的 PDO 教程
  3. Pdo 初学者教程
于 2013-02-06T19:05:59.540 回答
0

尝试:

$result=mysql_query("select name from students where name='$name'");

并且echo " $row['name'];应该是echo $row['name'];

于 2013-02-06T19:04:43.277 回答
0
$result = mysql_query("select name from students where name='$name'");


if($result){

  while($row = mysql_fetch_array($result))
  {
    echo $row['name'];
  }
}
于 2013-02-06T19:04:56.543 回答