Qual será o resultado $ quando o MySQL não retornar nada?
-
26-09-2019 - |
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?
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