-1

我为这个简单的事情奋斗了几个小时:

$var=var;    
$result = "SELECT column1, column2 FROM $db WHERE column3 = '$var' ";

我得到的错误是:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '\'var\'' 附近使用正确的语法

名称是正确的,它适用于 mysql 查询。认为我尝试了所有可能的报价选项,有什么问题?

更新:根据要求,我使用了转义,但错误保持不变

$var=var;   
$var = $conn->real_escape_string($var);
$result = "SELECT column1, column2 FROM {$db} WHERE column3 = '{$var}' ";
4

2 回答 2

0

我在 mysql 控制台中测试了一个错误的 SQL 查询:

 mysql>  SELECT column1, column2 FROM WHERE column3 = 'varvalue';

它给出了这个错误:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE column3 = 'varvalue'' at line 1

实际上缺少表名。我猜你的变量 $db 可能是空/空/未设置。

请试试 :

$db = "mytable";
$var = "varvalue";
$result = "SELECT column1, column2 FROM $db WHERE column3 = '$var' ";
于 2013-10-06T15:28:43.857 回答
0

必须有

$var = $mysqli->real_escape_string($var);
$sql = "SELECT column1, column2 FROM {$db} WHERE column3 = '{$var}' ";

代替:

$result = "SELECT column1, column2 FROM $db WHERE column3 = '$var' ";
$result = $mysqli->real_escape_string($result) ; //Totally wrong.
于 2013-10-06T15:17:58.117 回答