SQL在第1行创建表错误

时间:2017-05-29 20:04:14

标签: php mysql sql

我的代码中一直出错 :"您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在#s; $ sql =" CREATE TABLE Kodu(' $         ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,  '在第1行"

我甚至在SQLfiddle中尝试过这段代码,它给了我同样的错误。有人可以帮我发现错误吗?感谢

  $sql = "CREATE TABLE Kodu(
    ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    Dateoforder DATE NOT NULL,
    Contract VARCHAR(10),
    Order INT NOT NULL,
    Office VARCHAR(30) NOT NULL,
    Ship VARCHAR(100) NOT NULL 

)";

2 个答案:

答案 0 :(得分:1)

试试这个:

CREATE TABLE Kodu(
    ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    Dateoforder DATE NOT NULL,
    Contract VARCHAR(10),
    OrderNumber INT NOT NULL,
    Office VARCHAR(30) NOT NULL,
    Ship VARCHAR(100) NOT NULL 
)

您需要使用其他名称更改Order,因为订单是SQL中受保护的单词

或者像这样包装引号或反引号(如果启用了ANSI模式):

   CREATE TABLE Kodu(
        ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
        Dateoforder DATE NOT NULL,
        Contract VARCHAR(10),
        "Order" INT NOT NULL,
        Office VARCHAR(30) NOT NULL,
        Ship VARCHAR(100) NOT NULL 
    ) 

答案 1 :(得分:1)

问题是关键字order

如果启用了ansi模式,您必须使用后退标记或使用引号括起来逃避工作。

请阅读更多How do I escape reserved words used as column names? MySQL/Create Table

更好的建议是使用另一个单词而不是转义。