$wpdb->insert non funziona in alcun modo

26 dic 2011, 23:38:57
Visualizzazioni: 41.6K
Voti: 9

So che questo tipo di domanda è stata posta più e più volte, ma non sono riuscito a trovare una soluzione per il mio problema, quindi spero possiate aiutarmi. Sto usando WP 3.3 e ho creato una tabella personalizzata. Ora voglio inserire alcuni dati al suo interno, ma non riesco a farlo funzionare. Questo è il mio codice:

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
                )
                );

Sto cercando di inserire i dati da diverse ore ormai senza successo. Ai miei occhi il codice sembra corretto, ma immagino che mi stia sfuggendo qualcosa di importante qui. Qualsiasi suggerimento sarebbe apprezzato! Grazie

2
Commenti

Usa $wpdb->print_error(); nella riga successiva per inserire e verificare se restituisce degli errori.

tamilsweet tamilsweet
27 dic 2011 07:07:02

Grazie mille. $wpdb->show_errors() non mostrava nulla ma print_error() ha indicato esattamente qual era il problema!

Valentin Despa Valentin Despa
2 nov 2012 12:02:07
Tutte le risposte alla domanda 2
0
17

Quando il metodo $wpdb non funziona come dovrebbe, è probabile che ci sia un problema con la query SQL risultante (a causa di un input errato o altro).

Segui il riferimento a wpdb nel Codex per il troubleshooting:

  • abilita la visualizzazione degli errori del database tramite $wpdb->show_errors()
  • controlla quale query viene formata e eseguita tramite $wpdb->last_query
27 dic 2011 13:57:45
1
-1

La classe wpdb non ha un metodo insert. Sarebbe meglio se non utilizzassi la query; consulta il codex, e non troverai questa funzione insert() - http://codex.wordpress.org/Class_Reference/wpdb

Un esempio di inserimento di una tabella personalizzata con WPDB; utilizza una sintassi SQL CREATE TABLE predefinita e crea con il metodo query() di wpdb la tabella con i tuoi valori.

        $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) )"
        );

Per inserire questo sorgente, utilizza l'hook register_activation_hook(); solo durante l'attivazione, il plugin installerà la tabella se non esiste. Con register_uninstall_hook() elimino le tabelle personalizzate.

28 dic 2011 01:53:35
Commenti

wpdb ha il metodo insert()

Rarst Rarst
3 gen 2012 21:24:15