$wpdb->insert не работает ни в каком виде

26 дек. 2011 г., 23:38:57
Просмотры: 41.6K
Голосов: 9

Я знаю, что подобный вопрос задавался множество раз, но я не смог найти решение своей проблемы, поэтому надеюсь на вашу помощь. Я использую 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
                )
                );

Я пытаюсь вставить данные уже несколько часов, но безуспешно. На мой взгляд код правильный, но я, видимо, упускаю что-то важное. Буду благодарен за любые подсказки! Спасибо

2
Комментарии

Используйте $wpdb->print_error(); в следующей строке, чтобы вставить и проверить, возникают ли какие-либо ошибки.

tamilsweet tamilsweet
27 дек. 2011 г. 07:07:02

Большое спасибо. $wpdb->show_errors() ничего не показал, но print_error() точно указал на проблему!

Valentin Despa Valentin Despa
2 нояб. 2012 г. 12:02:07
Все ответы на вопрос 2
0
17

Когда метод $wpdb не работает должным образом, вероятно, проблема связана с результирующим SQL-запросом (из-за неверного ввода или чего-то ещё).

Следуйте справочнику по wpdb в Codex для устранения неполадок:

  • включите отображение ошибок базы данных через $wpdb->show_errors()
  • проверьте, какой запрос формируется и выполняется через $wpdb->last_query
27 дек. 2011 г. 13:57:45
1
-1

Класс 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() я удаляю пользовательские таблицы.

28 дек. 2011 г. 01:53:35
Комментарии

У wpdb есть метод insert()

Rarst Rarst
3 янв. 2012 г. 21:24:15