这是我的SQL查询
INSERT INTO users (Username, Password, Email, Admin)
VALUES ($username, $encryptedpass, $email, 0)
我收到此错误
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第2行使用“,,, 0”附近的正确语法
请你解释我搞砸的地方,以及如何解决它
答案 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 statements或MySQLi
使用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)