• Здравствуйте. Я пишу собственный плагин, который будет позволять пользователям вносить записи в создаваемую этим плагином при установке таблицу в БД блога.
    Первая проблема встретилась мне при попытке писать в БД, используя $wpdb. Я подключил wp-load.php, глобализировал $wpdb, но все равно при попытке использовать $wpdb->query получал ошибку Fatal error: Call to a member function query() on a non-object in #строки, в которой указана переменная с вызовом select-запроса через $wpdb->query. Промучившись в поисковиках с поиском решения для этой проблемы, я её оставил. Все, что я нашел (как в русскоязычном, так и в англоязычном интернете) — это советы глобализировать $wpdb и подключить файлы вроде wp-load.php. Не помогло.

    С этой проблемой я справился в обход, явно указав данные доступа к БД в переменной $db, и используя следующий синтаксис: $query = mysql_query('query', $db);. Это помогло, данные, отправляемые из формы стали записываться в БД. Но тут я встретился со второй проблемой, причин возникновения которой понять никак не могу. Каждый раз при добавлении новой записи в БД, она перезаписывала старую, несмотря на то, что для таблицы явно включен auto_increment и запрос на запись отправляется со значением NULL для поля id, что в теории (и на практике в не-вордпрессовском php-скрипте) работает как положено — добавляет новую запись в БД, не заменяя там всех имеющихся.
    Для эксперимента я даже вставил несколько записей-строк в таблицу непосредственно через phpmyadmin, они записались корректно, и исчезли без следа, когда я попытался добавить запись через форму, выводимую на страницу моим плагином. В БД осталась только эта единственная запись, которая по-прежнему перезаписывается, если попытаться отправить через форму еще одну. В чем проблема — ума не приложу, и очень надеюсь, что здесь мне смогут помочь. Надеюсь, я описал все достаточно подробно, если нужно, уточню все необходимое. Заранее спасибо.

Просмотр 1 ответа (всего 1)
  • Нашел решение самостоятельно. Если вдруг у кого-нибудь будет такая же проблема, убедитесь, что главный файл вашего плагина не создает необходимую для его работы таблицу в БД. В моем случае в файле шла проверка на существование этой таблицы, её удаление и создание новой с таким же именем и необходимой структурой. И при каждом вызове плагина таблица удалялась вместе со всеми уже введенными данными. Не повторяйте моих ошибок 🙂

Просмотр 1 ответа (всего 1)
  • Тема «Проблемы с mysql при написании плагина» закрыта для новых ответов.