Erkennen von Fehlern, die von $ wpdb-> get_results () generiert wurden

9

Wie erkenne ich Fehler, wenn ich $ wpdb-> get_results () verwende?

Zum Beispiel:

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

Der vorhergehende Code erzeugt keine Ausnahmen oder Fehler. es setzt einfach $ result auf ein leeres Array. Wie erkennen wir zuverlässig Fehler, die durch get_results () generiert wurden?

Rinogo
quelle

Antworten:

7

Es gibt eine Klassenvariable, die die letzte Fehlerzeichenfolge speichert - $ wpdb-> last_error. Wie die Art und Weise aussieht, wie $ wpdb codiert wird, ist $ wpdb-> last_error bei erfolgreicher Abfrage eine leere Zeichenfolge. Wenn dies fehlschlägt, handelt es sich um die von MySQL zurückgegebene Fehlerzeichenfolge. So etwas würde also den Trick machen.

$result = $wpdb->get_results("SELECT * FROM this is not a valid query");
if ($wpdb->last_error) {
  echo 'You done bad! ' . $wpdb->last_error;
}
bytesnz
quelle
Klingt vernünftig - ich kann das momentan nicht untersuchen, aber wenn dies funktioniert, würde es sich in Zukunft als nützlich erweisen! Vielen Dank! :)
Rinogo
Kam bei einem späteren Auftrag darauf zurück - funktioniert super! Ich habe diesen Code in eine Funktion eingefügt. Ich habe Ihre Antwort aktualisiert. Ich hoffe es macht dir nichts aus!
Rinogo
1

Das Beste, was ich finden kann, ist:

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

Leider löst das das Problem kaum. Ich möchte den Fehler programmgesteuert behandeln und nicht nur in den Ausgabestream übertragen.

Rinogo
quelle
Ich nehme an, ich könnte immer etwas
Böses