【问题标题】:SQL (PHP MySQLi) Syntax ErrorSQL (PHP MySQLi) 语法错误
【发布时间】:2012-06-12 20:38:57
【问题描述】:

我已经从 MySQL 服务器导出了 sql(导出文件中的版本为:5.1.41),并尝试在新的 MySQL 服务器上运行导出的 sql,该服务器在调试中显示客户端版本为 '5.1.41 ' 但 server_info 参数显示 '5.5.15-log'(我使用的是 PHP MySQLi 扩展)。

我收到以下错误:

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 'CREATE TABLE `mojo_global_regions` ( id int(11) NOT NULL AUTO_INCREMENT, reg' at line 22

这是它抱怨的代码块:

CREATE TABLE IF NOT EXISTS `mojo_global_regions` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `region_id` varchar(100) DEFAULT '',
  `region_name` varchar(100) DEFAULT '',
  `layout_id` int(5) DEFAULT NULL,
  `content` text,
  PRIMARY KEY (`id`),
  KEY `region_id` (`region_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ;

谁能看出这个语法有什么问题?

提前致谢!

【问题讨论】:

  • 什么是KEY region_id (region_id)??
  • @FahimParkar 这会在 region_id 字段上创建一个名为 region_id 的索引。
  • 使用上述查询,正在创建表。 see this

标签: php mysql mysqli create-table


【解决方案1】:

看起来在 CREATE TABLE 之前有一个语句没有正确终止。

【讨论】:

  • 取出了 CREATE TABLE 之前的所有内容,并且成功了。谢谢!但是 CREATE TABLE 之前的所有内容都被注释掉了,所以除非注释语法(“--”行尾 cmets)错误,否则不确定。这是 MySQL 导出给我的,但也许我遗漏了一些东西,你不能通过 PHP mysqli->query 方法运行这些 cmets。
猜你喜欢
  • 1970-01-01
  • 2018-12-16
  • 1970-01-01
  • 2013-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多