Pregunta

Esto puede parecer ridículamente simple, pero he estado recibiendo todo tipo de error que depende de cómo manejar una consulta que devuelve 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

¿Cómo puedo comprobar si mi mysql_query () devuelve nada?

¿Fue útil?

Solución

Puede comprobar el número de filas devueltas usando mysql_num_rows ( ).

Suponiendo que el bucle es algo consulta hasta que se obtiene un resultado, sería

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

(no estoy seguro de si lo que estás haciendo aquí es una muy buena idea, ya que es probable que ponga una carga terrible en el servidor de base de datos, pero eso es otro tema)

mysql_query () volverá false sólo en " real" errores, por ejemplo, una consulta mal escrita o pérdida de conexión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top