#1064 SQL错误

时间:2014-06-24 11:41:31

标签: php mysql sql

我最近开始学习一些laravel,我正在遵循这个指南:

http://www.packtpub.com/article/laravel4-creating-a-simple-crud-application-in-hours

但是,当我尝试创建数据库时,我收到sql语法错误。有谁知道这个查询中可能出现什么问题?

 CREATE TABLE IF NOT EXISTS 'users' (
  'id' int(10) unsigned NOT NULL AUTO_INCREMENT,
  'username' varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  'password' varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  'email' varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  'phone' varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  'name' varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  'created_at' timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  'updated_at' timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY ('id')
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
 AUTO_INCREMENT=3 ;

3 个答案:

答案 0 :(得分:0)

在列名和表名中删除'',您为表名和列名添加了'',这是无效的。您可以根据需要使用反引号,但除非您使用某些保留关键字,否则不需要反引号

CREATE TABLE IF NOT EXISTS users (
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  username varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  password varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  email varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  phone varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  name varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  created_at timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  updated_at timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
 AUTO_INCREMENT=3 ;

答案 1 :(得分:0)

错误1064是意外的错误,你的表和列名称周围有单引号('),而不是反引号(`)。

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `password` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `phone` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
 AUTO_INCREMENT=3 ;

答案 2 :(得分:0)

尝试,

您的查询完全正常运行'

 CREATE TABLE IF NOT EXISTS users (
      id int(10) unsigned NOT NULL AUTO_INCREMENT,
      username varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      password varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      email varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      phone varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      name varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      created_at timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
      updated_at timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
      PRIMARY KEY (id)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
     AUTO_INCREMENT=3 ;

****select * from users****