web-dev-qa-db-fra.com

Détecter les erreurs générées par $ wpdb-> get_results ()

Comment détecter les erreurs lors de l'utilisation de $ wpdb-> get_results ()?

Par exemple:

$result = $wpdb->get_results("SELECT * FROM this is not a valid query");

Le code précédent ne génère aucune exception ni erreur. il définit simplement $ result dans un tableau vide. Comment détecter de manière fiable les erreurs générées par get_results ()?

9
rinogo

Il existe une variable de classe qui stocke la dernière chaîne d'erreur - $ wpdb-> last_error. En apparence, $ wpdb est codé. Si la requête aboutit, $ wpdb-> last_error sera une chaîne vide. Si elle échoue, ce sera la chaîne d'erreur renvoyée par MySQL. Donc, quelque chose comme ça ferait l'affaire.

$result = $wpdb->get_results("SELECT * FROM this is not a valid query");
if ($wpdb->last_error) {
  echo 'You done bad! ' . $wpdb->last_error;
}
7
bytesnz

Le mieux que je puisse trouver est:

$wpdb->show_errors();
$result = $wpdb->get_results("SELECT * FROM this is not a valid query");
$wpdb->hide_errors();

Malheureusement, cela ne résout guère le problème. Je veux gérer l'erreur par programme, pas seulement en faire écho au flux de sortie.

1
rinogo