php初学者 - sql查询中的基本php变量

时间:2012-12-25 15:50:42

标签: php mysql

PHP变量在sql查询中不起作用..

我只是php的初学者。请告诉我哪里出错了。谢谢你的进步。

$sql = 'SELECT email_id FROM dealer WHERE dealerid="'mysql_real_escape_string($id).'"';

$rt  = mysql_query($sql);
$row = mysql_fetch_row($rt);

if($row) {
  echo "<h1>Number:</h1>" . $row[0];
  while($row = mysql_fetch_assoc($rt)) {
    var_dump($row);
  }
}

3 个答案:

答案 0 :(得分:4)

你忘了正确连接字符串应该像

$sql = 'SELECT email_id FROM dealer WHERE dealerid="' . mysql_real_escape_string($id) . '"';

String Operators

你的代码可能会给你

Parse error: syntax error, unexpected T_VARIABLE on line bla

这是一个语法错误,意味着您的代码中有一些东西会阻止它被正确解析并因此运行。

你应该做什么仔细检查错误所在的线条是否有任何简单的错误

因此请务必在E_PARSE中至少启用php.ini。生产脚本中不应存在解析错误。

我总是建议在编码时

error_reporting(E_ALL);

error_reporting


注意

  1. 我们使用mysql_real_escape_string()并不正确,我们完全可以安全地使用sql injection cheak this answer by @ircmaxell
  2. 整个 ext/mysql PHP扩展程序(提供名为mysql_的所有函数)为officially deprecated as of PHP v5.5.0,将来会被删除。因此,请使用PDOMySQLi
  3. 好读

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

答案 1 :(得分:2)

第1行有语法错误,.和mysql之间需要“'

$sql = 'SELECT email_id FROM dealer WHERE dealerid="' . mysql_real_escape_string($id) . '"';

答案 2 :(得分:0)

试试这个

$escaped = mysql_real_escape_string($id);
$sql = "SELECT email_id FROM dealer WHERE dealerid='$escaped'";