WordPress - get_results() - Comment savoir si échec ou vide?
- Je utiliser WordPress fonction $wpdb->get_results()
https://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
Il dit:
"Si pas de lignes correspondantes sont trouvés, ou si il y a une erreur de base de données, la valeur de retour sera un tableau vide."
Alors comment puis-je savoir si la requête a échoué OU si elle est vide?
Vous devez vous connecter pour publier un commentaire.
Utilisation
Mais si vous voulez savoir si la requête a échoué
Peu en retard pour la fête ici, mais je suis juste à la recherche de la même chose. J'ai eu une navigation à travers le
wp-db.php
code sur la version 4.4.2.Sur la ligne de 1422, à l'intérieur de la méthode
flush()
il y a un peu de code qui réinitialise lelast_error
propriété:Ce
flush()
méthode est appelée dans lequery()
méthode sur la ligne de 1693:La
get_results()
les appels de méthodequery()
sur la ligne 2322:Avec cela, nous pouvons être à peu près sûr que plus ou moins à chaque fois
get_results()
(Ouget_row()
trop d'ailleurs) est appelée,query()
etflush()
sont tous deux appelés, qui assure quelast_error
est vide avant que la requête est exécutée.Donc, en supposant que l'exécution de la requête (Si ce n'est pas,
null
est retourné - si la requête est vide par exemple),last_error
doit contenir un message d'erreur si la requête a été à l'échec pour une raison quelconque.Depuis
last_error
estflush()
ed/reset à chaque fois, il doit seulement contenir une erreur de la dernière requête a été exécutée, plutôt que de la dernière erreur pour toute requête qui avait été déjà été exécuté. Avec cela à l'esprit, il devrait être sûr de compter surlast_error
pour déterminer si quelque chose s'est mal passé avec la requête.Pas le plus intuitif à mon avis, mais il semble être suffisant.
Personnellement, j'ai écrit ma propre classe autour de
wpdb
pour mon propre bénéfice. C'est mongetResults()
méthode.Espère que cette aide.