当MySQL不返回任何内容时,$的结果是什么?
问题描述:
这可能看起来很简单,但我一直在得到各种错误,这取决于我如何处理不返回任何内容的查询。
$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()是否返回任何内容?
答
您可以检查使用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
看起来像你要DOS攻击你自己的数据库 – 2010-04-10 17:12:21