我在下面有这个查询:
$msgg = mysql_query("SELECT *
FROM mytable
WHERE time>$time
AND id='someid'
ORDER BY id ASC
LIMIT $display_num",$myconn);
请看这一行: AND id =' someid' < - someid ......
好的,上面的查询按预期返回2个结果......
现在出现问题......
- 我有一个变量myVar,它的内容是" someid " (不含引号)...与字符串相同' someid '
当我这样做时:
$msgg = mysql_query("SELECT *
FROM mytable
WHERE time>$time
AND id=myVar
ORDER BY id ASC
LIMIT $display_num",$myconn);
请参阅:myVar< - 此变量contans .. someid
第二个查询不返回任何结果。
更新:使用... AND id='$myVar'
时,由于某种原因,它会将$myVar
视为空。
答案 0 :(得分:4)
在myVar前放一个$:
$msgg = mysql_query(
"SELECT *
FROM mytable
WHERE time > $time
AND id = '$myVar'
ORDER BY id ASC
LIMIT $display_num", $myconn
);
答案 1 :(得分:0)
您忘记了美元符号和单引号:
AND id='$myVar'
此外,您可能需要考虑使用heredoc:
$query = <<<MYSQL
SELECT *
FROM mytable
WHERE time>$time
AND id='$myVar'
ORDER BY id ASC
LIMIT $display_num
MYSQL;
$msgg = mysql_query($query, $myconn);