Создание таблицы с именем домена не удается

Я пытаюсь создать таблицу всякий раз, когда пользователь отправляет свое доменное имя. Это определенно будет .com или .net или .something
Проблема в том, что мой код не создает таблицу, если она содержит .anything
отлично работает для имен и символов без .something

$domain=$_POST['domain_name'];//it is dramatainment.com

$table = mysqli_query($connection, "CREATE TABLE $domain (
user_id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_name VARCHAR(100) NOT NULL,
user_domain VARCHAR(50) NOT NULL,
user_email VARCHAR(50),
user_password VARCHAR(50),
user_date date
) ");
if(!$table)
{
die('Could not create table: ' . mysqli_error($connection));
}

Имеет ли команда создания таблицы это ограничение? Можно ли это решить?

1

Решение

Вы можете попытаться заменить точку подчеркиванием.

Вот Вы можете найти, какой символ разрешен в имени таблицы.

Кроме того, можно выполнить запрос, используя этот синтаксис, который будет конфликтовать с именем вашей таблицы:

SELECT * FROM dbname.table_name;

ОБНОВИТЬ : можно использовать обратные метки для включения имени таблицы:

$sql = 'CREATE TABLE `$tableName` (
user_id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_name VARCHAR(100) NOT NULL,
user_domain VARCHAR(50) NOT NULL,
user_email VARCHAR(50),
user_password VARCHAR(50),
user_date date
)';
0

Другие решения

Некоторые специальные символы недопустимы для идентификаторов, таких как имена таблиц.

Увидеть http://dev.mysql.com/doc/refman/5.7/en/identifiers.html

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector