Intereting Posts
Добавить функцию загрузки изображения внутри существующего кода ajax Очистить сайт с помощью javascript, используя cURL Как обновить всплывающее содержимое с помощью MarkerCluster с помощью листовки php – регулярное выражение – PCRE не поддерживает \ L, \ l, \ N, \ P, Как интегрировать MoneyBookers в веб-приложение на PHP? Подключение к локальной базе данных с удаленного веб-сервера Передать javascript в php в модальном окне Как преобразовать формат времени, который я получил от PHP, в формат, который принимает обратный отсчет jQuery Почему использование библиотеки pcntl в php не рекомендуется на prod-serv? Получение измененных данных обхода дерева запроса в массив Шебанг #! unrecognized в Ubuntu, Файл, созданный в Windows7 | Устранение неполадок при кодировании MySQL выбирает из таблицы в зависимости от других значений таблицы Несколько приложений с Swiftmailer Symfony2: как добавить массив Entity Entity в FormBuilder Получить содержимое файла домена в другом домене на том же сервере

Ошибка с запросом MySQL «CREATE TABLE»

Я знаю, что это было задано сотни раз раньше, но я просмотрел Интернет и не смог найти, что может быть неправильным с моим синтаксисом:

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