Создание таблиц для WordPress с помощью PHP

Admin MySQL, MySQL Errors, PHP, WordPress

Создать таблицы для базы данных сайта на WordPress можно не только через phpMyAdmin, но и посредством кода.

Для создания таблиц в WordPress достаточно один раз запустить скрипты с кодом ниже.

Пример 1

Создаём таблицу с 2 колонками: id и type. В ней же создадим 2 строки. В строку type поместим какое-нибудь содержимое.

function createTables()
{
    global $wpdb;
    $table_name = $wpdb->prefix ."new_table_name";

    $sql = "CREATE TABLE if NOT EXISTS $table_name (
          `id` BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
          `type` TINYTEXT
        );";

    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    dbDelta($sql);

    echo 'Таблица создана';

    $wpdb->insert($table_name, ['type' => 'Содержимое 1']);
    $wpdb->insert($table_name, ['type' => 'Содержимое 1']);

    exit;
}

Пример 2

function createTables()
{
    global $wpdb;
    $tableName = $wpdb->prefix . 'new_table_name';

    $sql = "CREATE TABLE if NOT EXISTS $tableName (
          `id` BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
          `number` BIGINT,
          `type_id` BIGINT,
          `votes` MEDIUMTEXT
        );";

    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    dbDelta($sql);

    echo 'Таблица создана';
    exit;
}

Возможные ошибки

Если при создании таблицы возникнет подобная ошибка:

Ошибка базы данных WordPress: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near »id’ BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, `number` BIGINT, ‘ at line 2]
CREATE TABLE if NOT EXISTS new_table_name ( ‘id’ BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, `number` BIGINT, `type_id` BIGINT, `votes` MEDIUMTEXT )

То проблема кроется в кавычках. Недопустимо использовать одинарные кавычки. Нужны специальные кавычки такого типа:

`

На сайте отсутствует реклама! Значете почему?

Помогать людям - моё хобби. А навыки разработчика позволяют не парится нулевой монетизизацией этого сайта. Хотя...

Если вам помогла информация, то даже от доната в 40 рублей мне будет приятно. Докину немного, куплю латте в макдаке, вспомню за чей счет банкет и карма вам зачтется!

Но и просто оставленный комментарий благодарности ниже принесет мне улыбку радости :)

А если захочется написать всякие гадости с переходом на личности, да тоже не стесняйтесь, но обычно я отправляю такое в спам. Люблю, когда дома чисто.

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"Создание таблиц для WordPress с помощью PHP"