Страницы

Поиск по вопросам

понедельник, 3 февраля 2020 г.

MYSQL не хочет создвать таблицу с названием, в котором есть пробел

#mysql


При создании таблицы (название которой идет вместе с заголовком и контентом через
форму) почему-то возникает ошибка, если в названии таблицы - два слова через пробел.

выдает ошибку:


  "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 'gdfg (id INT (11)NOT NULL AUTO_INCREMENT,title
VARCHAR(100) NULL DEFAULT 0 ,cont' at line 1""


где "gdfg" — это второе слово в названии таблицы. с одним словом в названии проблем
нет, а вот если в названии два слова - возникает ошибка.

код создания выглядит так:

$comand="CREATE TABLE $category_ (id INT (11)NOT NULL AUTO_INCREMENT,title VARCHAR(100)
NULL DEFAULT 0 ,content VARCHAR(4096) NULL DEFAULT 0,
    data TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY
KEY (id))";
    mysql_query($comand)or die(mysql_error());
    $comand="INSERT INTO $category_ (title, content) VALUES ('$titles','$contents')";
    mysql_query($comand)or die(mysql_error());

    


Ответы

Ответ 1



Если вы хотите создать таблицу с пробелом в имени, то ее имя надо заключать в обратные апострофы: create table `abc def` (id int not null) Но вам так же придется при любом упоминании ее имени в любых SQL запросах так же заключать ее в обратные апострофы.

Ответ 2



Так как пробелы используются для разделения частей команды SQL, они не могут быть частью имени таблицы ( или любого другого объекта, такого как индекс ). Подчеркивание ( _ ) - обычно используется для разделения слов в именах таблиц. Можно задавать имя таблицы с пробелом, но только в апострофах(в кавычках нельзя). Также зависит от версии Mysql.

Комментариев нет:

Отправить комментарий