当我尝试导入数据库时出现此错误
您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在'(' id')附近使用正确的语法 )TYPE = MyISAM AUTO_INCREMENT = 6'在第4行
DROP TABLE IF EXISTS `categories`;
CREATE TABLE `categories` (
`id` int(5) NOT NULL auto_increment,
`category` varchar(50) NOT NULL default '',
PRIMARY KEY ('id')
) TYPE=MyISAM AUTO_INCREMENT=6 ;
答案 0 :(得分:2)
您在代码中遇到两个问题,请删除主键声明中id
周围的单引号。你可以使用反引号或什么也没用。
并将Type=MyISAM
更改为:
ENGINE=MyISAM
来自MySQL Docs:
旧版术语TYPE作为ENGINE的同义词支持向后兼容,但ENGINE是首选术语,不推荐使用TYPE。
所以脚本将是:
DROP TABLE IF EXISTS `categories`;
CREATE TABLE `categories` (
`id` int(5) NOT NULL auto_increment,
`category` varchar(50) NOT NULL default '',
PRIMARY KEY (id)
) ENGINE=MyISAM AUTO_INCREMENT=6 ;
答案 1 :(得分:2)
您在这里使用'
PRIMARY KEY ('id')
在这种情况下, id
是一个字符串,而不是列名。请改用反引号。
PRIMARY KEY (`id`)
答案 2 :(得分:2)
试试这个:
DROP TABLE IF EXISTS `categories`;
CREATE TABLE `categories` (
`id` int(5) NOT NULL auto_increment,
`category` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MYISAM AUTO_INCREMENT=6
问题是PRIMARY KEY ('id')
应该使用带引号的反引号
答案 3 :(得分:-2)
1064您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在#disc; FROM disc_disc WHERE disc_id = NULL'附近使用正确的语法。第1行SQL = SELECT disc_id,disc_name,FROM disc_disc WHERE disc_id = NULL
// zjistit jmeno diskuse
$disc_name = "";
$sql = sprintf("SELECT disc_id, disc_name, " .
"FROM disc_disc " .
"WHERE disc_id=%s",
quote_smart($disc_id));
$db->setQuery($sql);
$rec = $db->loadObjectList();
if ($db->getErrorNum()) {
JError::raiseWarning( 500, $db->stderr() );
}