2010-04-10 4 views
2

Cela peut sembler ridiculement simple, mais j'ai eu toutes sortes d'erreurs en fonction de la façon dont je gère une requête qui ne renvoie rien. Comment puis-je vérifier si mysql_query() a retourné quoi que ce soit?

+1

On dirait que vous allez DOS attaquer votre propre base de données –

Répondre

2

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, ce serait

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

(pas sûr que ce que vous faites Voici une très bonne idée, car il est susceptible de mettre un fardeau terrible sur le serveur de base de données, mais c'est un problème différent)

mysql_query() retournera seulement pour les erreurs "réelles", par ex. une requête mal orthographiée ou une connexion perdue.

+0

Aussi, vous devez vous assurer que la connexion MySQL n'a pas expiré et que la session est ok. Utilisez mysql_ping pour cela (bien que cette fonction puisse effectuer des reconnexions automatiques, je vous recommande de ne pas utiliser cette fonctionnalité). – svens

Questions connexes