0

Ok、

ここで何か間違ったことをしていると確信していますが、一生それを理解することはできません。

これが私のテーブルです

CREATE TABLE `email_queue` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `from` varchar(256) DEFAULT NULL,
  `to` varchar(4182) DEFAULT NULL,
  `cc` varchar(4182) DEFAULT NULL,
  `subject` varchar(4182) DEFAULT NULL,
  `body` varchar(4182) DEFAULT NULL,
  `status` varchar(64) DEFAULT NULL,
  `attempts` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id_UNIQUE` (`id`)
) 

私がするとき

insert into email_queue values (1,'','','','','','',0);

正常に動作し、空白の値を挿入します

しかし、使用して部分的な値を挿入しようとすると

insert into email_queue(to) values('sample_to_name');

ERROR 1064 (42000): SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、1 行目の「to) v alues('sample_to_name')」付近で使用する正しい構文を確認してください。

私は何を間違っていますか?

4

3 に答える 3

2

tomysqlの予約語はバックティックにする必要があります。

予約語を含む列名を作成しないようにするか、バッククォート `` で囲みます。

insert into email_queue(`to`) values('sample_to_name');
于 2011-04-08T06:18:30.743 に答える
1

バックティックが必要です

insert into email_queue(`to`) values('sample_to_name');
于 2011-04-08T06:18:36.733 に答える
1

問題は

   to is mysql reserved word
于 2011-04-08T06:19:34.660 に答える