无法将字符串插入MySQL文本列

时间:2009-04-15 15:36:56

标签: mysql syntax text insert

出于某种原因,当我写入“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”列并且它是查询中的相应值,则查询工作正常。

有什么想法吗?

5 个答案:

答案 0 :(得分:9)

'to'是MySQL中的保留关键字。您需要重命名列。

http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html

但是,如果引用保留字,则允许使用保留字作为标识符。

http://dev.mysql.com/doc/refman/5.1/en/identifiers.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','测试消息','这是测试消息。    这是一条测试消息。这是一条测试消息。这是一条测试信息。',    '一封电子邮件');