【问题标题】:mysql 1064 error SYNTAX ERRORmysql 1064 错误语法错误
【发布时间】:2016-04-25 15:07:57
【问题描述】:

每次尝试在我的 sql 数据库中创建表时,我都会收到此错误:

查询中的错误 (1064):'CREATE TABLE IF NOT EXISTS users (id int(10) NOT NULL AUTO_INCREMENT, '' at line 2 附近的语法错误

我能得到一些帮助吗?

use luke_f_db
CREATE TABLE IF NOT EXISTS `users` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `username` varchar(50) NOT NULL,
 `email` varchar(50) NOT NULL,
 `password` varchar(50) NOT NULL,
 `trn_date` datetime NOT NULL,
 PRIMARY KEY (`id`)
 );

【问题讨论】:

  • use luke_f_db ? mysqli_select_db() 还是足够的?
  • USE 之后加一个分号(或者实际上,在查询之外这样做,最好在连接语句中)。
  • 50 个字符对于某些电子邮件地址来说是不够的。对于大多数字段使用VARCHAR(255),除非您有非常令人信服的理由不这样做,否则存储成本通常为零。
  • 有一天你会发现丢失分号的能力,这样的错误就会变得很明显。在此之前,请密切关注 MySQL 所说的内容,并在它抱怨之前寻找问题。

标签: php mysql sql syntax-error mysql-error-1064


【解决方案1】:

您的use 命令有错误。添加一个 ;在第一行后面,或者只是检查数据库是否存在以及您的帐户是否可以访问它。

CREATE 代码对我来说很好用。

【讨论】:

    【解决方案2】:

    每个查询只能运行一个命令**。 mySQL 命令行客户端允许您使用 ; 拆分多个命令,但仍按顺序运行它们。

    删除use luke_f_db 行。应在连接命令中选择要使用的数据库。见http://www.w3schools.com/php/func_mysqli_connect.asp

    $con = mysqli_connect("localhost","my_user","my_password","my_db");
    

    数据库名称是 mysqli_connect 的最后一个参数。

    在PHP官方文档中可以找到相同的信息:http://php.net/manual/en/mysqli.construct.php

    ** 一些 mySQL 客户端实现还允许一次调用多个命令,但您应该避免它。在脚本中使用此功能无法移植到其他数据库,如果发生错误,您将永远不知道您的哪个命令触发了错误。

    【讨论】:

    猜你喜欢
    • 2015-04-25
    • 2016-03-10
    • 1970-01-01
    • 2016-09-29
    • 2014-01-08
    • 1970-01-01
    • 2017-05-06
    • 2018-03-05
    • 2014-01-22
    相关资源
    最近更新 更多