Pourquoi WordPress $wpdb->query() réponse 1 lorsque les lignes retournée est 0
Je suis en train de faire la suite dans une fonction personnalisée:
$exists = $wpdb->query($wpdb->prepare('
SELECT COUNT(*)
FROM wp_%d_gdsr_data_article
WHERE post_id = %d
', $blog_id, $post_id));
$existe évalue à 1, même si aucune ligne n'est retournée par la requête. Aussi, var_dump($wpdb->requêtes), on obtient une valeur NULL. Quelqu'un sait ce qui se passe ici?
merci,
OriginalL'auteur codecowboy | 2010-06-07
Vous devez vous connecter pour publier un commentaire.
De la la documentation:
La requête retourne 1 ligne pour que les
query()
fonction renvoie1
- et retournera toujours1
pour la requête que vous publiez dans votre question, même si le nombre de lignes sélectionnées par leCOUNT
est de 0. Utilisationget_var
,get_row
, ouget_results
comme suggéré par TheDeadMedic pour obtenir le résultat de la requête, qui peut être0
,1
,2
, etc.OriginalL'auteur thetaiko
Utilisation
$wpdb->get_var($query)
à la place.En conséquence, l'utilisation
$wpdb->get_row()
pour récupérer une seule ligne comme un seul objet (ou un tableau), et$wpdb->get_results()
pour obtenir un ensemble de résultats.$wpdb->query()
doit être utilisé uniquement pour le fichier exécutable requêtes, car il ne renvoie le nombre de lignes ou false si aucune ligne.$wpdb->queries
est uniquement utilisée si vous définissezSAVEQUERIES
comme vrai.OriginalL'auteur TheDeadMedic