$wpdb->insert nu funcționează în niciun fel
Ș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

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

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.

