2

这是我的 SQL 查询

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

我收到这个错误

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

你能解释一下我在哪里搞砸了,以及如何解决它

4

5 回答 5

1

您需要将变量括起来'以正确格式化变量。整数字段不需要外壳。

INSERT INTO users (Username, Password, Email, Admin)
VALUES ('$username', '$encryptedpass', '$email', 0)
于 2013-08-28T17:55:27.280 回答
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 发送此数据,您应该使用准备好的语句,使用MySQLior PDO

于 2013-08-28T17:55:36.253 回答
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)
于 2013-08-28T17:55:46.913 回答
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 清空空字符串而不是转到下一个值,

于 2013-08-28T17:55:43.240 回答
0

你在使用 PHP 吗?文本日期必须介于 ''

插入用户(用户名、密码、电子邮件、管理员)值('$username'、'$encryptedpass'、'$email'、0)

于 2013-08-28T17:56:22.167 回答