从php / mysql中的select..where返回的打印值

时间:2013-02-06 19:03:15

标签: php mysql

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

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


if($result){

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

4 个答案:

答案 0 :(得分:3)

如果$name不是数字,MySQL会认为它是一列,并且该列可能不存在,因此您将收到错误。像'$name'一样在它周围加上引号。您还应首先在mysql_real_escape_string上致电$name,然后检查mysql_query的结果是否为false(如果是,请检查mysql_error)。

你也错过了一些引用。


更好的是,停止使用ext/mysql并使用PDO代替。然后你可以编写像

这样的查询
select name from students where name = ?

并且为您自动完成转义和报价添加。

答案 1 :(得分:1)

如果您使用字符串使用引用,则将其视为列名

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

注意

  1. 整个 ext/mysql PHP扩展程序(提供名为mysql_的所有函数)为officially deprecated as of PHP v5.5.0,将来会被删除。因此,请使用PDOMySQLi
  2. 好读

    1. The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead
    2. PDO Tutorial for MySQL Developers
    3. Pdo Tutorial For Beginners

答案 2 :(得分:0)

尝试:

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

echo " $row['name'];应为echo $row['name'];

答案 3 :(得分:0)

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


if($result){

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