MySQL语法错误插入

时间:2013-08-28 17:53:53

标签: mysql database

这是我的SQL查询

INSERT INTO users (Username, Password, Email, Admin)
    VALUES ($username, $encryptedpass, $email, 0)

我收到此错误

  

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第2行使用“,,, 0”附近的正确语法

请你解释我搞砸的地方,以及如何解决它

5 个答案:

答案 0 :(得分:1)

您需要使用'将变量括起来,以正确格式化变量。整数字段不需要封装。

INSERT INTO users (Username, Password, Email, Admin)
VALUES ('$username', '$encryptedpass', '$email', 0)

答案 1 :(得分:1)

您需要将值包装在单引号中(假设Admin是整数):

INSERT INTO users (Username, Password, Email, Admin)
    VALUES ('$username', '$encryptedpass', '$email', 0)

为了获得最佳实践,您应该在反引号中包含所有系统关键字:

INSERT INTO `users` (`Username`, `Password`, `Email`, `Admin`)
    VALUES ('$username', '$encryptedpass', '$email', 0)

如果您使用PHP发送此数据,则应使用prepared statementsMySQLi使用PDO

答案 2 :(得分:1)

试试这个: -

INSERT INTO users (Username, Password, Email, Admin)
VALUES ('$username', '$encryptedpass', '$email', '0')

 INSERT INTO users (Username, Password, Email, Admin)
VALUES ('$username', '$encryptedpass', '$email', 0)

答案 3 :(得分:0)

INSERT INTO users (Username, Password, Email, Admin)
    VALUES ($username, $encryptedpass, $email, 0)

应该是

INSERT INTO users (Username, Password, Email, Admin)
    VALUES ('$username', '$encryptedpass', '$email', '0')

问题是没有插入一个空字符串,它被读作

INSERT INTO users (Username, Password, Email, Admin)
    VALUES (, , , 0)

当所有三个变量都是空字符串而不是

INSERT INTO users (Username, Password, Email, Admin)
    VALUES ('', '', '', '0')

空字符串''告诉MySQL清空空字符串,而不是使用,转到下一个值

答案 4 :(得分:0)

您使用的是PHP吗?文字日期必须介于''

之间

INSERT INTO用户(用户名,密码,电子邮件,管理员)     VALUES('$ username','$ encryptedpass','$ email',0)