繁体   English   中英

在 php 上创建表在 sql 语法上有错误

[英]Creating table on php having error on sql syntax

我要构建的程序是使用phpmysql 中创建一个表。 表名是从前一页的表单输入到文本框中的值。

我有一个问题说明:

您的 SQL 语法有错误; 检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的“2014(ID_Number INT NOT NULL,PRIMARY KEY(ID_Number),First_Name VARCH”附近使用的正确语法)

CREATE TABLE $filename(
    ID_Number INT NOT NULL,
    PRIMARY KEY (ID_Number),
    First_Name VARCHAR(50),
    Middle_Name VARCHAR(50),
    Last_Name VARCHAR(50),
    Year INT,
    Course VARCHAR(50),
    Position VARCHAR(50),
    Party VARCHAR(50),
    Picture VARCHAR(50),
    vote INT,
)

您需要删除 create 语句中最后一列之后的逗号

vote INT,

(创建表时出错:您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,了解在 ' 2014( ID_Number INT NOT NULL, PRIMARY KEY (ID_Number), First_Name VARCH' at line 附近使用的正确语法) 1')

除了其他可能的错误(如其他答案中所建议的那样),上面的错误消息专门返回,因为您试图创建一个名为2014的表,这是不允许的。

“标识符可以以数字开头,但除非引用,否则不能仅由数字组成”。 [ MySql 手册:9.2 模式对象名称]

您可以使用反引号仅转义数字表名:

CREATE TABLE `2014` 
....

字符串连接是错误的。 尝试这个 -

$sql = "CREATE TABLE $filename(".
    "ID_Number INT NOT NULL,".
    "PRIMARY KEY (ID_Number),".
    "First_Name VARCHAR(50),".
    "Middle_Name VARCHAR(50),".
    "Last_Name VARCHAR(50),".
    "Year INT,".
    "Course VARCHAR(50),".
    "Position VARCHAR(50),".
    "Party VARCHAR(50),".
    "Picture VARCHAR(50),".
    "vote INT".
    ")";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM