PHP / SQL查询和PHP变量

时间:2011-11-24 23:40:39

标签: php sql

我在下面有这个查询:

$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视为空。

2 个答案:

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