2011-06-20 59 views
0

我是一個相當初級的MySQL。我有這個簡單的表達,我需要過濾。MySQL,PHP幫助想要

$a = "2";  
$s1 = sprintf("%s,",$a)."%"; 
$s2 = "%".sprintf(",%s,",$a)."%"; 
$s3 = "%".sprintf(",%s",$a); 


$res = mysql_query("SELECT busno FROM busroute WHERE route LIKE '$s1' OR route LIKE '$s2' OR route LIKE '$s3' "); 
// This basically searches for "2," OR ",2," OR ",2" in route. 

如果我在MySQL瀏覽器中使用完全相同的表達式,我會得到我的結果。但它只是在PHP中返回null。 幫助!我知道我錯過了什麼,但不知道是什麼。

回答

4

mysql_query's documentation說:

對於SELECT,SHOW,描述,解釋等語句返回的結果集,的mysql_query()返回出錯的成功resource,或FALSE

您還需要檢索結果:

while(($row = mysql_fetch_array($res))) { 
    print_r($row); 
} 

看一看的documentation有更多的例子和信息。

更新:

因爲這解決了這個問題:使用mysql_error找出與查詢的問題。

+0

我的意思是$ res資源本身是空的。 如果我這樣做,它會拋出一個mysql異常,要求在mysql_fetch_array()中有一個非布爾參數。 – pnpranavrao

+0

@pnpranavrao:它永遠不會返回null。你還連接到數據庫嗎?調用'mysql_error()'並看看它說什麼。 –

+0

是的,數據庫已連接。 你說得對錯! 因爲它不會拋出任何錯誤,所以我可以如何調試呢? – pnpranavrao

0

如果它不只是一個錯字,請看看這個位:s2'。它應該是'$s2'。此外,PHP應該罰款這個字符串。查看錶格中的數據。