WordPress-Datenbank-insert() und update () mit NULL-Werte
WordPress-Schiffe mit der wpdb
Klasse übernimmt die CRUD-Operationen. Die beiden Methoden dieser Klasse, die ich bin daran interessiert, sind die insert()
(das C in CRUD) und update()
(das U in CRUD).
Entsteht ein problem, wenn ich wollen zum einfügen einer NULL in eine mysql-Datenbank-Spalte - die wpdb
Klasse entweicht PHP-null-Variablen auf leere strings. Wie kann ich feststellen, WordPress zu verwenden, eine tatsächliche MySQL NULL
statt einer MySQL-string?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie wollen, dass es kompatibel ist, müssen Sie nachweisen SPALTE und bestimmen Sie Voraus, wenn NULL erlaubt ist. Wenn es erlaubt war, dann wurde der Wert empty($v) val = NULL in der Abfrage.
Hier eine Lösung für Ihr problem. In "wp-content" - Ordner, erstellen Sie eine Datei namens "db.php" und fügen Sie diesen code in es:
Auf diese Weise können Sie null-Werte mit wpdb!
Finde ich diese auf WordPress StackExchange forum und es funktioniert sehr gut für mich.
und die Funktion wp_db_null_value ist:
Weil in meinem Fall kann ich nicht verwenden $db->prepare () - Funktion...
wpdb
insert()
undupdate()
arbeitet mitNULL
Werte, es gepatcht wurde vor vielen Jahren aber nie erwähnt im Codex.In Ihrem Fall:
Ref: https://core.trac.wordpress.org/ticket/15158#no0
Habe ich versucht zu Bearbeiten eine der anderen hier aufgeführten Lösungen, denn es führte Sie in das format-array wird falsch ausgerichtet mit dem Daten-array, scheiterte aber.
Hier ist eine Lösung, ändert die wpdb von der neuesten version von wordpress, um zu ermöglichen das einfügen und aktualisieren von null-Werten in SQL-Tabellen mit insert() und update():
Fügen Sie diesen code in irgendwo, dass die immer ausgeführt wird, wie Ihre functions.php, und verwenden Sie dann Ihre neue global $wpdb_allowed_null->insert() und ->update() als normal.
Ich bevorzugt diese Methode vs. überschreiben den Standardwert $wpdb zur Wahrung der DB-Verhalten, dass der rest von WordPress und anderen plugins erwarten.