出于某种原因,当我写入“text”类型的列时,我的查询搞砸了。这是一个例子:
Describe messages;
Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
title varchar(255) YES NULL
body text YES NULL
to text YES NULL
content_type varchar(255) YES NULL
is_sms tinyint(1) YES NULL
user_id int(11) YES NULL
created_at datetime YES NULL
updated_at datetime YES NULL
然后我尝试插入:
INSERT INTO messages (id,title,body,to) VALUES ('1','Test Message','This is a test message. This is a test message. This is a test message. This is a test message.', 'an email' );
由于某种原因,这会导致一般的MySQL语法错误。如果我删除“to”列并且它是查询中的相应值,则查询工作正常。
有什么想法吗?
答案 0 :(得分:9)
'to'是MySQL中的保留关键字。您需要重命名列。
http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html
但是,如果引用保留字,则允许使用保留字作为标识符。
答案 1 :(得分:4)
试试这个
INSERT INTO messages (`id`,`title`,`body`,`to`)
VALUES ('1','Test Message','This is a test message.
This is a test message. This is a test message. This is a test message.',
'an email' );
答案 2 :(得分:3)
INSERT
INTO messages (id,title,body,`to`)
VALUES ('1','Test Message','This is a test message. This is a test message. This is a test message. This is a test message.', 'an email' );
答案 3 :(得分:1)
我相信如果你像这样围绕着“to”:
INSERT INTO messages (id,title,body,`to`) VALUES ('1','Test Message','This is a test message. This is a test message. This is a test message. This is a test message.', 'an email' );
它会起作用 - 无论如何都为我做了。
答案 4 :(得分:0)
使用MySQL中未定义的变量;例如:不要使用'to','not','join'......
INSERT INTO消息(id,title,body,test) VALUES('1','测试消息','这是测试消息。 这是一条测试消息。这是一条测试消息。这是一条测试信息。', '一封电子邮件');