Quel sera le résultat de $ être quand MySQL retourne rien?
-
26-09-2019 - |
Question
Cela peut sembler ridiculement simple, mais je reçois toutes sortes d'erreurs en fonction de la façon dont je gère une requête qui ne retourne rien.
$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
Comment puis-je vérifier si mon mysql_query () retourne quoi que ce soit?
La solution
Vous pouvez vérifier le nombre de lignes retournées en utilisant mysql_num_rows ( ).
présumant votre boucle est d'interroger quelque chose jusqu'à ce qu'il obtienne un résultat, il serait
while(time()-$time<60 && $num_rows == 0)
{
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
(ne sais pas si ce que vous faites ici est une très bonne idée, car il est susceptible de mettre un terrible fardeau sur le serveur de base de données, mais qui est un autre problème)
mysql_query () retournera false
uniquement sur " réel » erreurs, par exemple une requête mal orthographié ou une perte de connexion.