PHP:无法将单引号字符串传递给mysqli查询

PHP:无法将单引号字符串传递给mysqli查询,php,Php,我为这件简单的事情奋斗了几个小时: $var=var; $result = "SELECT column1, column2 FROM $db WHERE column3 = '$var' "; 我得到的错误是:您的SQL语法有错误;检查与MySQL服务器版本相对应的手册,以了解第1行“\'var\”附近使用的正确语法 名称是正确的,它在mysql查询中工作。我想我试过了所有可能的报价选项,怎么了 更新:根据请求,我使用了转义,但错误保持不变 $var=var; $var = $

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

$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}' ";
一定有

$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.

我在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可能是null/empty/unset

请尝试:

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

var
周围缺少引号。这是故意的吗?你是说在第一行?那么,
var
是常数吗?如果您试图存储一个字符串,则需要在其周围加引号。目前它是常量。我将其更改为$var=“var”;同样的错误。
$var=“var”
在错误消息中生成文本
\'var\'
。这些
\'
从何而来?给了我致命的错误:对中的非对象调用成员函数real\u escape\u string(),所以
$mysqli
不是
mysqli
对象的对象?我不知道,是否有一些先决条件?不,不使用WHERE过滤器的查询我不知道在MySQL查询之前是否要求您回显$result SQL字符串?回显如预期