2010-04-10 101 views
2

這可能看起來很簡單,但我一直在得到各種錯誤,這取決於我如何處理不返回任何內容的查詢。

$query = "SELECT * FROM messages WHERE id > ".$messageId; 
$result =mysql_query($query); 
$time = time(); 
while(time()-$time<60 && $result==false) 
{ 
    $result = mysql_query($query); 
} 
if(result != false) 
    //Encode response 
else 
    //return nothing 

如何檢查我的mysql_query()是否返回任何內容?

+1

看起來像你要DOS攻擊你自己的數據庫 – 2010-04-10 17:12:21

回答

2

您可以檢查使用mysql_num_rows().

意味着你的循環,直到它得到的結果來查詢東西返回的行數,這將是

while(time()-$time<60 && $num_rows == 0) 
{ 
    $result = mysql_query($query); 
    $num_rows = mysql_num_rows($result); 

(不知道是你在做什麼這裏是一個很好的主意,因爲它很可能將數據庫服務器上的一個可怕的負擔,但是這是一個不同的問題)

mysql_query()只能在「真實」的錯誤,例如返回false拼寫錯誤的查詢或丟失的連接。

+0

你也必須確保MySQL連接沒有超時,並且會話正常。爲此使用mysql_ping(儘管此功能可以自動重新連接,但我建議不要使用此功能)。 – svens 2010-04-10 17:14:46

相關問題