Каков будет результат $, когда MySQL ничего не вернет? - PullRequest
2 голосов
/ 10 апреля 2010

Это может показаться смехотворно простым, но я получаю всевозможные ошибки в зависимости от того, как я обрабатываю запрос, который ничего не возвращает.

$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 Ответ

2 голосов
/ 10 апреля 2010

Вы можете проверить количество возвращаемых строк, используя mysql_num_rows ().

Если предположить, что ваш цикл запрашивает что-то, пока он не получит результат, он будет

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

(не уверен, действительно ли то, что вы делаете здесь, является хорошей идеей, поскольку это может создать ужасную нагрузку на сервер базы данных, но это другая проблема)

mysql_query () вернет false только при «реальных» ошибках, например, неверный запрос или потеря соединения.

...