wpdb-> Einfügen funktioniert nicht

EDIT: Rewrote die Seite von Grund auf neu und konnte die Unterschiede nicht herausfinden. Die neue Seite funktioniert wie erwartet.

Überprüft mehrere Fragen hier und auch auf WordPress.org noch kein Glück. Unten ist Code, den ich in mehreren Seiten verwende, um alte Datensätze zu nehmen und sie in die DB zu stecken (ohne Probleme auf diesen Seiten). Es gibt mehr Code auf der Seite, aber hier habe ich Probleme. Es funktioniert nicht auf einer Seite.

Ich bekomme keine Fehler, selbst mit $ wpdb-> show_errors (); Die einzige Ausgabe, die ich bekomme, ist, nachdem ich $ wpdb-> print_error () benutzt habe, was mir die Ausgabe gibt:

`WordPress database error: [] SHOW FULL COLUMNS FROM `wp_posts` 

$ new_id = $ wpdb-> Einfügung_ID; $ new_id an diesem Punkt ist 0, weil nichts in die database eingefügt wurde (verifiziert über PHPMyAdmin).

Ich habe versucht, anzugeben, welche Arten von Daten ich in der Einfügung übergebe (über das dritte Array von ‘% s’ usw.), aber die gleichen Ergebnisse erhalten.

Alle Empfehlungen anderer Tests oder Workarounds wären willkommen.

======================

 function transfer_officer($old_record) { global $wpdb; $wpdb->show_errors(); $status = 'publish'; $old_id = $old_record[0]; $name = $old_record[1]; $post_date = date('Ymd h:i:s'); $post_data = array( 'post_author' => 1, 'post_date' => $post_date, 'post_date_gmt' => $post_date, 'post_content' => '', 'post_title' => $name, 'post_excerpt' => '', 'post_status' => $status, 'comment_status' => 'closed', 'ping_status' => 'closed', 'post_password' => '', 'post_name' => officer_name_to_slug($name), 'to_ping' => '', 'pinged' => '', 'post_modified' => $post_date, 'post_modified_gmt' => $post_date, 'post_content_filtered' => '', 'post_parent' => 0, 'menu_order' => 0, 'post_type' => 'rb_board_officers_posts', 'post_mime_type' => '', 'comment_count' => 0 ); //put into post table $wpdb->insert('wp_posts', $post_data); $wpdb->print_error(); var_dump($wpdb); $new_id = $wpdb->insert_id; 

Solutions Collecting From Web of "wpdb-> Einfügen funktioniert nicht"

Ich habe das gleiche Problem.

Lösung 1: Entfernen Sie Ihre Daten. WordPress weist die Abfrage zurück, wenn die Länge des Werts größer als die in der database definierte Feldlänge ist.

In Ihrer Einfügeabfrage hat der Wert für das Feld post_type die Grenze von 20 Zeichen überschritten.

Lösung 2: Verwenden Sie die $ wpdb-> Abfrage-Methode

Haben Sie versucht, manuell eingegebene Daten zu verwenden, um zu sehen, ob diese eingefügt werden? Mach einfach ein paar Sachen, um die Variablen zu ersetzen. Überprüfen Sie außerdem, ob post_author zum Einfügen von Posts berechtigt ist.

Eine andere Möglichkeit ist es, wp_insert_post () zu testen und zu sehen, ob das funktioniert.