2011-11-24 78 views
0

下面我有此查詢:PHP/SQL查詢和PHP變量

$msgg = mysql_query("SELECT * 
FROM mytable 
WHERE time>$time 
AND id='someid' 
ORDER BY id ASC 
LIMIT $display_num",$myconn); 

看到這一行:和id = 'someid' < - someid ...

OK,查詢上述返回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爲空的某些原因。

回答

4

把一個$的myVar的面前:

$msgg = mysql_query(
"SELECT * 
    FROM mytable 
    WHERE time > $time 
    AND id = '$myVar' 
    ORDER BY id ASC 
    LIMIT $display_num", $myconn 
); 
+0

並在其周圍放置大括號以便測量 –

+0

...並且可能會跳出變量防止SQL注入... – SteAp

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