-3

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);
  }
}
4

3 回答 3

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);

错误报告


笔记

  1. 我们正在使用它不是真的,我们mysql_real_escape_string() 完全安全的形式 sql 注入cheak this answer by @ircmaxell
  2. 整个ext/mysqlPHP 扩展提供了所有以 mysql_ 为前缀的函数,从 PHP v5.5.0 开始正式弃用,并将在未来删除。所以使用PDO或者MySQLi

好读

  1. 不推荐使用 mysql 扩展并将在将来删除:请改用 mysqli 或 PDO
  2. MySQL 开发人员的 PDO 教程
于 2012-12-25T16:01:17.687 回答
2

你在第 1 行有一个语法错误,你需要一个 " ."'和 mysql

$sql = 'SELECT email_id FROM dealer WHERE dealerid="' . mysql_real_escape_string($id) . '"';
于 2012-12-25T15:53:59.840 回答
0

试试这个

$escaped = mysql_real_escape_string($id);
$sql = "SELECT email_id FROM dealer WHERE dealerid='$escaped'";
于 2012-12-25T15:55:32.390 回答