#php #mysql #sql #mysql-error-1064 #mysql-error-1005
#php #mysql #sql #mysql-ошибка-1064 #mysql-ошибка-1005
Вопрос:
Я получаю следующее от mysql_error ():
У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с —>’assets’ (‘assetid’ INT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (‘assetid'<— в строке 1
Я также пробовал что-то подобное :
'assets' ('assetid' INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
…но безуспешно. Версия mysql 5.0.7.
Редактировать:
На самом деле, я сначала попробовал это без (‘), прежде чем поместить его. Код динамический, но это примеры:
CREATE TABLE 'assets' (
'assetid' INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY('assetid'),
'rfid' VARCHAR( 128 ) ,
'createddate' DATE ,
'modifieddate' DATE ,
'curlocid' INT( 11 ) ,
'type' VARCHAR( 128 ) ,
'brand' VARCHAR( 128 ) ,
'name' VARCHAR( 128 ) ,
'condition' VARCHAR( 128 )
);
РЕДАКТИРОВАТЬ 2:
Только что я попытался заменить все одинарные кавычки (‘ ) обратными галочками ( ` ).. Произошла другая ошибка..
Не удается создать таблицу ‘mydb.assets’ (ошибка: 121)
Это лучше или хуже?
РЕДАКТИРОВАТЬ 3:
Я попытался создать ее, используя разные имена таблиц, и угадайте, что? Это работает! Черт возьми, почему я не могу создать имя таблицы ‘assets’?? это потому, что есть какие-то остатки для предыдущей операции?? если да, то как мне это очистить?? что, если я скажу, что удаляю таблицу, удаляя ее файл??(frm, myd, myi) (не удаляю из-за лени).. как мне это исправить?
Комментарии:
1. не могли бы мы просмотреть полный запрос, который вы пытаетесь запустить, пожалуйста, хотя ошибка очень полезна, нам все равно нужно будет просмотреть остальную часть запроса;
2. вы говорите, что код динамический, означает ли это, что активы и assetid — это имя примера, и если да, то являются ли эти примеры теми, в которых действительно ошибка, или вы просто это придумали?
3. идентификатор объекта до тех пор, пока curlocid не будет предопределен.. Другие — это введенные пользователем значения.. Приведенные мной примеры приводят к ошибке. Я вывожу запрос вместе с mysql_error..
Ответ №1:
Было бы полезно просмотреть весь ваш код.
Немного основываясь на том, что я вижу, вам нужно устранить все эти галочки. Это должно сработать:
create table assets (
assetid int unsigned not null auto_increment primary key
);
Я запустил это нормально на сервере MySQL 5.5
Комментарии:
1. Я уже пробовал это без этих пометок раньше.. Я обновил вопрос для sql-запроса..
2. то, что исправление одной ошибки не исправляет программу, не означает, что это не было ошибкой. Это просто означает, что это не единственная ваша ошибка.
Ответ №2:
хорошо, я не уверен, что здесь происходит, дорогая, но я скопировал и вставил ваш код и получил ту же ошибку, поэтому я скопировал построчно, все еще с разрывами в тех местах, где они должны были быть, поэтому я напечатал это построчно, пришлось немного повозиться, но я получил это, за исключением «condition», которое может быть зарезервированным словом, но я сокращаю его, вот что я получил
create table assets (
assetid int unsigned not null auto_increment,
primary key(assetid),
rfid varchar(128),
createddate DATE,
modifieddate DATE,
curlocid INT(11),
type varchar(128),
brand varchar(128),
name varchar(128),
cond varchar(128)
);
Ответ №3:
Я думаю, вам нужно использовать обратные тики (`) вместо одинарных кавычек (‘) при цитировании имен таблиц или столбцов.
Ответ №4:
Этот вопрос старый, но я просто собираюсь рассказать ответ о том, как это решить. На случай, если кто-то наткнулся на это .. В данном случае используется ДВИЖОК по умолчанию. До сих пор я не замечал, что сервер, который я использую (Z-WAMP), настраивает INNODB в качестве движка по умолчанию. После того, как я изменил его на MyISAM, который является движком по умолчанию для mysql, все работает отлично!! тем не менее, спасибо за ребят, которые мне помогают..
В этом файле -> my.cnf измените эту строку:
default-storage-engine=MyISAM