Я знаю, что это было задано сотни раз раньше, но я просмотрел Интернет и не смог найти, что может быть неправильным с моим синтаксисом:
mysql_select_db('Projects'); $sql = "CREATE TABLE $data[ID] ( ID INT NOT NULL, Creator INT NOT NULL, Name VARCHAR(20) NOT NULL, Version VARCHAR(20) NOT NULL, Status VARCHAR(20) NOT NULL, Date VARCHAR(20) NOT NULL, Skript VARCHAR(20) NOT NULL, Filename VARCHAR(20) NOT NULL, Downloads INT NOT NULL, PRIMARY KEY(ID) )"; if (mysql_query($sql)){ echo "Created"; }else{ echo "Not created, ".mysql_error(); }
Я пробовал использовать backticks, кавычки et.c, но напрасно. Имя таблицы (21), отображаемое в ошибке, является правильным.
Вот ошибка, которую я получаю, включая эхо «Не создано»,::
Не создано. У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования около '23 (ID INT NOT NULL, Creator INT NOT NULL, имя VARCHAR (20) NOT NUL 'в строке 1
Правила для именования объектов, включая таблицы в MySql:
http://dev.mysql.com/doc/refman/5.1/en/identifiers.html
Идентификаторы могут начинаться с цифры, но если цитируемый текст не может состоять только из цифр.
вы не можете называть начало таблицы цифрами
это будет работать для примера
$sql = "CREATE TABLE 't'.$data[ID] ( ID INT NOT NULL, Creator INT NOT NULL, Name VARCHAR(20) NOT NULL, Version VARCHAR(20) NOT NULL, Status VARCHAR(20) NOT NULL, Date VARCHAR(20) NOT NULL, Skript VARCHAR(20) NOT NULL, Filename VARCHAR(20) NOT NULL, Downloads INT NOT NULL, PRIMARY KEY(ID) )";
как вы видите, начинается с t
или использовать обратные элементы вокруг него. как это
`$data[ID]`
Ваш запрос кажется правильным, за исключением значения $ data [ID]. Вы должны это проверить.
Я думаю, проблема связана со значением $ data [ID], какова его ценность? Кроме того, используйте mysqli_query () или PDO (как указано bestprogrammerintheworld) вместо старого mysql_query ().
Вам удалось опустить самую важную информацию, которая является кодом SQL, который вызывает ошибку SQL. Но мы можем собрать некоторые подсказки от PHP, который его генерирует:
$sql = "CREATE TABLE $data[ID] ( ID INT NOT NULL,
… и сообщение об ошибке:
около '23 (ID INT NOT NULL
Я подозреваю, что вы пытаетесь запустить этот SQL:
CREATE TABLE 23 ( ID INT NOT NULL
Если вы действительно хотите создать таблицу с именем 23
вам нужно процитировать ее с обратными окнами каждый раз, когда вы ее используете, включая создание:
CREATE TABLE `23` ( ID INT NOT NULL