【问题标题】:What will the $result be when MySQL returns nothing?当 MySQL 什么都不返回时 $result 会是什么?
【发布时间】:2010-04-10 16:59:38
【问题描述】:

这可能看起来简单得可笑,但根据我处理不返回任何内容的查询的方式,我遇到了各种错误。

$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() 是否返回任何内容?

【问题讨论】:

  • 看起来你要对自己的数据库进行 DOS 攻击

标签: php javascript ajax long-polling


【解决方案1】:

您可以使用mysql_num_rows().查看返回的行数

假设你的循环是查询某些东西直到得到结果,它会是

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

(不确定您在这里所做的是否真的是一个好主意,因为它可能会给数据库服务器带来沉重的负担,但这是一个不同的问题)

mysql_query() 将仅在“真实”错误时返回 false,例如拼写错误的查询或丢失的连接。

【讨论】:

  • 另外,您必须确保 MySQL 连接没有超时并且会话正常。为此使用mysql_ping(虽然此功能可以自动重新连接,但我建议不要使用此功能)。
猜你喜欢
  • 2018-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多