$wpdb->insert nu funcționează în niciun fel

26 dec. 2011, 23:38:57
Vizualizări: 41.6K
Voturi: 9

Știu că acest tip de întrebare a fost pusă de multe ori, dar nu am putut găsi o soluție pentru problema mea, așa că sper că mă puteți ajuta. Folosesc WP 3.3. și am creat un tabel personalizat. Acum vreau să inserez niște date în el, dar nu reușesc să-l fac să funcționeze. Acesta este codul meu:

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

Încerc să inserez date de câteva ore fără succes. Din punctul meu de vedere codul pare corect, dar presupun că îmi scapă ceva important aici. Orice sugestie ar fi apreciată! Mulțumesc

2
Comentarii

Folosește $wpdb->print_error(); în linia următoare pentru a insera și verifica dacă generează erori.

tamilsweet tamilsweet
27 dec. 2011 07:07:02

Mulțumesc mult. $wpdb->show_errors() nu a afișat nimic, dar print_error() a indicat exact care era problema!

Valentin Despa Valentin Despa
2 nov. 2012 12:02:07
Toate răspunsurile la întrebare 2
0
17

Când metoda $wpdb nu funcționează așa cum ar trebui, probabil este o problemă cu interogarea SQL rezultată (din cauza unor date de intrare incorecte sau a altceva).

Urmați referința wpdb în Codex pentru depanare:

  • activați afișarea erorilor din baza de date prin $wpdb->show_errors()
  • verificați ce interogare este formată și executată prin $wpdb->last_query
27 dec. 2011 13:57:45
1
-1

Clasa wpdb nu are o metodă de inserare. Cel mai bine este să nu folosiți query; consultați codex-ul și nu veți găsi această funcție insert() - http://codex.wordpress.org/Class_Reference/wpdb

Un exemplu de inserare a unei tabele personalizate în WPDB; utilizați o sintaxă SQL CREATE TABLE implicită și creați cu query() din wpdb tabela cu valorile dvs.

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

Pentru a insera această sursă, folosiți hook-ul register_activation_hook(); doar la activare, pluginul va instala tabela dacă nu există. La register_uninstall_hook() șterg tabelele personalizate.

28 dec. 2011 01:53:35
Comentarii

wpdb are o metodă insert()

Rarst Rarst
3 ian. 2012 21:24:15