2013-08-28 91 views
2

这是我的SQL查询MySQL的语法错误INSERT INTO

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

我得到这个错误

您的SQL语法错误;检查对应于你的MySQL服务器版本使用附近的正确语法手册“ 0)”第2行

能否请您解释一下我在哪里搞乱了,以及如何解决它

+0

你错过其中一些:' – Strawberry

+0

是的,对不起, – Speedysnail6

+0

不要道歉;-) – Strawberry

回答

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,使用MySQLiPDO

+0

谢谢!对不起,如果这是一个简单的问题,我只是MySQL的新手。而且,我正在使用PHP。 – Speedysnail6

1

您需要用'附上变量以正确格式化变量。整数字段不需要机箱。

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

我很感谢你的回应,但我需要他们所有被包围的' – Speedysnail6

+0

@ speedysnail6如果0需要被包围那么该领域是不期待一个整数。 – sealz

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空空字符串,而不是去下一个值与,

+0

谢谢!对不起,如果这是一个简单的问题,我只是MySQL的新手。而且,我正在使用PHP。 – Speedysnail6

+0

@ Speedysnail6没问题,我们都是从某个地方开始的,一路上都是这样的简单东西。只要记住把手册保存在一个方便的快捷方式[php.net](http://www.php.net)和[MySQL](http://dev.mysql.com/doc/index.html),并帮助通过接受你认为是最好的答案与绿色的选中标记和任何有用的答案与^ – amaster

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) 
+0

谢谢!对不起,如果这是一个简单的问题,我只是MySQL的新手。而且,我正在使用PHP。 – Speedysnail6

+0

没有问题,你不需要对不起! BTW为你做了这项工作? –

+0

是的,它的工作!谢谢 – Speedysnail6

0

您是否使用PHP?文本日期必须与 '走出去'

INSERT INTO的用户(用户名,密码,电子邮件,联系) VALUES( '$用户名', '$ encryptedpass', '$电子邮件',0)