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?

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;
}

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.


Ich nehme an, ich könnte immer etwas
Böses
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.