Pergunta

Isso pode parecer ridiculamente simples, mas tenho recebido todos os tipos de erros, dependendo de como lido a uma consulta que não retorne nada.

$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

Como verifico se meu mysql_query () devolveu alguma coisa?

Foi útil?

Solução

Você pode verificar o número de linhas retornadas usando mysql_num_rows ().

Presumindo que seu loop seja consultar algo até obter um resultado, seria

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

(Não tenho certeza se o que você está fazendo aqui é uma ideia realmente boa, pois é provável que coloque um fardo terrível no servidor de banco de dados, mas esse é um problema diferente)

mysql_query () retornará false Somente em erros "reais", por exemplo, uma consulta incorreta ou conexão perdida.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top