Создать таблицы для базы данных сайта на WordPress можно не только через phpMyAdmin, но и посредством кода.
Для создания таблиц в WordPress достаточно один раз запустить скрипты с кодом ниже.
Пример 1
Создаём таблицу с 2 колонками: id и type. В ней же создадим 2 строки. В строку type поместим какое-нибудь содержимое.
{
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
{
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 )
То проблема кроется в кавычках. Недопустимо использовать одинарные кавычки. Нужны специальные кавычки такого типа: