Ich verwende $wpdb->update
, um eine benutzerdefinierte Tabelle zu aktualisieren, die sich in meiner Datenbank befindet. Wenn ich var_dump
das Ergebnis erhalte, wird Folgendes zurückgegeben:
int(0)
Also habe ich versucht $wpdb->print_error()
zu sehen, was los ist. Es zeigt jedoch nichts. Ich habe es auch versucht $wpdb->show_errors()
, aber wieder zeigte es nichts.
In den wpdb-Dokumenten wird die Verwendung dieser Funktionen nicht sehr detailliert beschrieben. Daher bin ich mir nicht sicher, ob ich sie richtig verwende. Aber warum würde das Ergebnis der Aktualisierung einer Tabelle 0 zurückgeben und keine Fehler anzeigen?
SHOW FULL COLUMNS FROM ``
in meinem FallFehler anzeigen:
$wpdb->show_errors = true
Zeigt Fehler automatisch an, wenn auf gesetztWP_DEBUG
isttrue
.$wpdb->suppress_errors = false
unterdrückt keine Fehler mehr.Multisite benötigen eine spezielle Behandlung
Ausgabehandhabung
Die
$wpdb->update()
Methode hat drei verschiedene Ausgänge. Um dagegen zu prüfen, müssen Sie das Ergebnis ia var: speichern$result = $wpdb->update( /* ... */ );
.Die behandeln diese Szenarien:
false === $result
: Scheitern0 === $result
: Erfolg, aber kein Update0 < $result
: ErfolgKlassenausgabe
$wpdb->last_error
zeigt Ihnen den letzten Fehler an, falls Sie einen haben.$wpdb->last_query
unterstützt Sie beim Anzeigen der letzten Abfrage (wo der Fehler aufgetreten ist). Es ist im Grunde das gleiche wiearray_pop( $wpbd->queries );
.Wichtiger (Sicherheits-) Hinweis
Bitte fügen Sie diese Codes NICHT auf der Live-Site hinzu. Vor allem nicht, wenn Caching-Plugins beteiligt sind. Hierdurch können wichtige DB-bezogene Daten für Besucher sichtbar werden !
Wenn Sie es nicht anders machen können: Binden Sie Ihren Code immer in bedingte Anweisungen ein, um eine öffentlich zugängliche Debug-Ausgabe zu verhindern!
Durch das Anzeigen des
$wpdb
Objekts werden möglicherweise auch der Benutzername und das Kennwort Ihrer Datenbank angezeigt!quelle
Eine Nullantwort bedeutet, dass keine Zeilen betroffen sind, was sich von einem Fehler unterscheidet.
Es ist schwer zu sagen, ohne auf Ihre Abfrage zu achten, warum keine Zeilen aktualisiert werden. Ein Debug-Tool, das Sie ausprobieren können, ist, "
SAVEQUERIES
" in Ihrer wp-config.php-Datei auf true zu setzen.Versuchen
var_dump
Sie es dann, nachdem Ihre Abfrage ausgeführt wurde$wpdb->queries
.quelle
quelle
Versuchen Sie dies vor Ihrer Anfrage:
oder vielleicht nach Ihrer Anfrage:
quelle