此查询的错误在哪里?

时间:2014-05-08 14:24:10

标签: php mysql sql

我正在开发一个应用程序,它需要在mysql服务器上设置所有表。但是我遇到了一个表的问题。这是查询:

  CREATE TABLE IF NOT EXISTS emails (
      'id' int(11) NOT NULL AUTO_INCREMENT,
      'em_id' int(11) NOT NULL,
      'cuenta' varchar(20) NOT NULL,
      'link' text NOT NULL,
      'fecha' timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      'conf' int(11) NOT NULL DEFAULT '0',
      'confirmed' timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
      'used' int(11) NOT NULL DEFAULT '0',
      'used_time' timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
      PRIMARY KEY ('id','cuenta')
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

当我的应用程序运行时,我得到了这个:

#1064 - 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 ''id' int(11) NOT NULL AUTO_INCREMENT,
  'em_id' int(11) NOT NULL,
  'cuenta' v' at line 2 

我没有想法,请帮帮我。谢谢

2 个答案:

答案 0 :(得分:7)

删除列标识符周围的引号。要么使用刻度线,要么根本不使用:

CREATE TABLE IF NOT EXISTS emails (
      id int(11) NOT NULL AUTO_INCREMENT,
      em_id int(11) NOT NULL,
      cuenta varchar(20) NOT NULL,
      link text NOT NULL,
      fecha timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      conf int(11) NOT NULL DEFAULT '0',
      confirmed timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
      used int(11) NOT NULL DEFAULT '0',
      used_time timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
      PRIMARY KEY (id,cuenta)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS emails (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `em_id` int(11) NOT NULL,
  `cuenta` varchar(20) NOT NULL,
  `link` text NOT NULL,
  `fecha` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `conf` int(11) NOT NULL DEFAULT '0',
  `confirmed` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `used` int(11) NOT NULL DEFAULT '0',
  `used_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`,`cuenta`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

答案 1 :(得分:2)

您应该使用反引号而不是单引号'

CREATE TABLE IF NOT EXISTS emails (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `em_id` int(11) NOT NULL,
  `cuenta` varchar(20) NOT NULL,
  `link` text NOT NULL,
  `fecha` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `conf` int(11) NOT NULL DEFAULT '0',
  `confirmed` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `used` int(11) NOT NULL DEFAULT '0',
  `used_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`,`cuenta`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

Example