2013-08-23 103 views
1

我不知道什么是错的,为什么我的语句不会插入。我有以下数据:phpmyadmin mysql INSERT语句语法错误

username varchar length (25) 
password varchar length (25) 
fname varchar length (25) 
email text 
contactnum big int (30) 

我不知道为什么我的电子邮件没有与我contactnum 这里将沿年代截图: enter image description here

根据我了解的长度是多少数据中的字符可以输入正确吗?

我的查询似乎有什么错?

回答

0

您插入到电子邮件提交的字符串值需要引用。另外,表格和列的名称不应该引用。查询应该是这样的:

INSERT INTO members (username, password, fname, email, contactnum) 
VALUES (2, 2, 2, '[email protected]', 1) 

需要注意的是你改变了前三个字段被声明为varchar,所以你应该将字符串到他们。您尝试将整数插入到varchar字段时没有收到错误的原因是,在某些情况下,可能会自动转换错误的数据类型。我认为这是更好的做法,不依赖于隐式类型转换,以避免错误和意外结果,所以查询确实应该这样写:

INSERT INTO members (username, password, fname, email, contactnum) 
VALUES ('2', '2', '2', '[email protected]', 1) 

这是见仁见智的问题,但。他们都工作。

+0

谢谢:)是吗?关于长度值,是可以输入的字符数(数字)?例如int年龄值(2),您只能输入两位数字,如11,输入111会给错误? – Daryl

+0

@Daryl正确,长度是字段中允许的最大字符数。 –

+0

MySQL中没有nvarchar,你可以在任何varchar字段上定义字符集... –

1
INSERT INTO members (username, password, fname, email, contactnum) 
VALUES (2, 2, 2, '[email protected]', 1) 

如果字符串不要忘了使用单引号