it-swarm.com.de

Fehlermeldungen erhalten, wenn $ wpdb-> insert () false zurückgibt?

$wpdb->insert() gibt false zurück, was bedeutet, dass die Einfügung fehlgeschlagen ist. Jetzt möchte ich wissen, warum es mit dem Einsatz fehlschlägt.

Laut diesem Ticket https://core.trac.wordpress.org/ticket/32315 könnte das Problem sein, dass der Wert entweder zu lang ist oder falsche Zeichen enthält.

Hier ist die Einfügeabfrage:

$result = $wpdb->insert('table', $ins_args, array('%d', '%d', '%s', '%s', '%s', '%s'));

Es ist schwierig, die $ins_args -Array-Werte anzuzeigen, da einige Werte ziemlich lang sind. Speziell das für das Feld value. Aber ich benutze den Typ longtext für dieses Feld. Und dieser Einsatz wird viel benutzt. Und meistens funktioniert es mit Erfolg. Es fühlt sich also wirklich wie ein Kodierungs- oder Größenproblem an.

Wie erfahre ich, wo das Problem liegt? $wpdb->last_error ist leer

4

Die Methode $wpdb->insert() gibt false zurück, wenn die Zeile nicht eingefügt werden konnte. Andernfalls wird die Anzahl der betroffenen Zeilen zurückgegeben (immer 1).

Sie können das Echo von Fehlern mit dem show_errors bzw. hide_errors ein- und ausschalten.

<?php $wpdb->show_errors(); ?> 
<?php $wpdb->hide_errors(); ?> 

Sie können auch den Fehler (falls vorhanden) drucken, der durch die letzte Abfrage mit print_error generiert wurde.

<?php $wpdb->print_error(); ?> 

Sie können auch das Feld $last_error verwenden, das den neuesten von MySQL generierten Fehlertext enthält.

1