web-dev-qa-db-fra.com

Comment vérifier si vide et pas un échec

J'interroge la table postmeta pour savoir si une URL a déjà été entrée à l'aide de cette instruction (où $ thisLink est l'URL que je vérifie)

  $mypostids = $wpdb->get_results("select * from $wpdb->postmeta where meta_key = 'rssmi_source_link' and meta_value like '%".$thisLink."%'");

Le problème est que sur certains serveurs, il semble que les URL ne soient pas déjà présentes dans la base de données, et je suis convaincu que cela peut être dû au fait que le serveur a échoué lors de la requête ou à quelque chose du genre.

Quoi qu'il en soit, je ne suis pas sûr de savoir comment vérifier si l'URL existe déjà (donc ne plus le traiter) ou s'il y a eu une sorte d'échec lors de la finalisation de la requête). en ce moment, je viens d'utiliser:

if (empty( $mypostids )){ do stuff}

est-il possible de créer la situation comme si elle était vide ET si aucun échec ne se produisait?

1
Allen

Vous testez un échec en testant explicitement false:

if (null === $mypostids) { /* it failed */ }

NB: trois signes égaux! vous voulez vérifier identique, pas simplement équivalent

edit: à l'origine dit false, remplacé par null après avoir examiné la fonction get_result () dans le code source.

2
webaware