$wpdb->insert не работает ни в каком виде
Я знаю, что подобный вопрос задавался множество раз, но я не смог найти решение своей проблемы, поэтому надеюсь на вашу помощь. Я использую WP 3.3 и создал пользовательскую таблицу. Теперь я хочу вставить в нее некоторые данные, но у меня не получается. Вот мой код:
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
)
);
Я пытаюсь вставить данные уже несколько часов, но безуспешно. На мой взгляд код правильный, но я, видимо, упускаю что-то важное. Буду благодарен за любые подсказки! Спасибо

Когда метод $wpdb
не работает должным образом, вероятно, проблема связана с результирующим SQL-запросом (из-за неверного ввода или чего-то ещё).
Следуйте справочнику по wpdb в Codex
для устранения неполадок:
- включите отображение ошибок базы данных через
$wpdb->show_errors()
- проверьте, какой запрос формируется и выполняется через
$wpdb->last_query

Класс wpdb
не имеет метода insert. Лучше не использовать запрос; посмотрите в кодексе, и вы не найдёте эту функцию insert()
- http://codex.wordpress.org/Class_Reference/wpdb
Пример вставки пользовательской таблицы с помощью WPDB; используйте стандартный SQL-синтаксис CREATE TABLE
и создайте таблицу с вашими значениями через метод query()
класса wpdb
.
$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) )"
);
Для вставки этого кода используйте хук register_activation_hook()
; таблица будет установлена только при активации плагина, если она не существует. В register_uninstall_hook()
я удаляю пользовательские таблицы.

