2010-04-10 60 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

相关问题