$ wpdb-> insert funktioniert in keiner Weise

7

Ich weiß, dass diese Art von Frage immer wieder gestellt wurde, aber ich konnte keine Lösung für mein Problem finden. Ich hoffe, Sie können mir helfen. Ich benutze WP 3.3. und ich habe eine benutzerdefinierte Tabelle erstellt. Jetzt möchte ich einige Daten einfügen, aber ich kann es nicht zum Laufen bringen. Das ist mein Code:

global $wpdb;
$table_name = $wpdb->prefix . "my_data";
$wpdb->insert($table_name, array(
            'my_id'     => NULL,
        'my_day'    => $day,
        'my_month'  => $month,
        'my_abbr'   => $abbr,
        'my_venue'  => $venue,
        'my_geo'    => $geo_one.", ".$geo_two,
        'my_artist' => $artist,
        'my_link'   => $link
                )
                );

Ich versuche jetzt seit einigen Stunden ohne Glück Daten einzufügen. Für meine Augen ist der Code korrekt, aber ich denke, ich muss hier nur etwas Wichtiges durcheinander bringen. Alle Hinweise wäre dankbar! Vielen Dank

Sven
quelle
4
Verwenden Sie $wpdb->print_error();in der nächsten Zeile, um Fehler einzufügen und zu überprüfen.
tamilsweet
Danke vielmals. $ wpdb-> show_errors () zeigte nichts anderes als print_error () zeigte genau, was das Problem war!
Valentin Despa

Antworten:

14

Wenn die $wpdbMethode nicht wie gewünscht ausgeführt wird, liegt wahrscheinlich ein Problem mit der resultierenden SQL-Abfrage vor (aufgrund falscher Eingaben oder etwas anderem).

Befolgen Sie wpdb reference in Codexzur Fehlerbehebung Folgendes :

  • Aktivieren Sie die Datenbankfehleranzeige über $wpdb->show_errors()
  • Überprüfen Sie, welche Abfrage gebildet und ausgeführt wird $wpdb->last_query
Selten
quelle
0

Die wpdb-Klasse hat keine Einfügung; Sie sollten die Abfrage nicht verwenden. Sehen Sie sich den Codex an und Sie finden diese Funktion nicht insert()- http://codex.wordpress.org/Class_Reference/wpdb

Ein Beispiel zum Einfügen einer benutzerdefinierten Tabelle in WPDB. Verwenden Sie eine Standard- CREATE TABLESQL-Syntax und erstellen Sie mit query()wpdb die Tabelle mit Ihren Werten.

        $table = $GLOBALS['wpdb'] -> prefix . 'my_data';
        $GLOBALS['wpdb'] -> query(
            "CREATE TABLE $table (
            called_by varchar(96) NOT NULL,
            my_name varchar(96) NOT NULL,
            my_type varchar(15) NOT NULL,
            first_call int(11) NOT NULL,
            arg_count tinyint(4) NOT NULL,
            file_name varchar(128) NOT NULL,
            line_num smallint NOT NULL,
            PRIMARY KEY (first_call, my_name) )"
        );

Um diese Quelle einzufügen, verwenden Sie den register_activation_hook()-hook. Nur bei Aktivierung installiert das Plugin die Tabelle, falls sie nicht existiert. Ein register_uninstall_hook()lösche benutzerdefinierte Tabellen.

bueltge
quelle
Ja, ich schreibe dies auf den Kommentar.
Bueltge