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);
}
}
答案 0 :(得分:4)
你忘了正确连接字符串应该像
$sql = 'SELECT email_id FROM dealer WHERE dealerid="' . mysql_real_escape_string($id) . '"';
你的代码可能会给你
Parse error: syntax error, unexpected T_VARIABLE on line bla
这是一个语法错误,意味着您的代码中有一些东西会阻止它被正确解析并因此运行。
你应该做什么仔细检查错误所在的线条是否有任何简单的错误
因此请务必在E_PARSE
中至少启用php.ini
。生产脚本中不应存在解析错误。
我总是建议在编码时
error_reporting(E_ALL);
注意
mysql_real_escape_string()
并不正确,我们完全可以安全地使用sql injection cheak this answer by @ircmaxell ext/mysql
PHP扩展程序(提供名为mysql_的所有函数)为officially deprecated as of PHP v5.5.0,将来会被删除。因此,请使用PDO
或MySQLi
好读
答案 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'";