5

次のクエリを実行しようとしています。

"insert into visits set source = 'http://google.com' and country = 'en' and ref = '1234567890';"

クエリは私には良さそうです、そしてそれは警告を出力します:

1 row(s) affected, 2 warning(s): 1364 Field 'country' doesn't have a default value 1292 Truncated incorrect DOUBLE value: 'http://google.com'

そして、情報は期待どおりに保存されません:

id , ref , bnid, source, country
'5', NULL, NULL, '0'   , ''

次のような通常の構文を実行すると、次のようになります。

insert into visits (source,country,ref) values('http://google.com','en','1234567890');

期待どおりの結果が得られます。

'6', '1234567890', NULL, 'http://google.com', 'en'

最初の構文(挿入セット)は前のサーバーで機能していました。今、私はcpanelを備えたものに変更しましたが、そうではありません。今週は、cpanelを使用した2つの異なるVPSでこの問題が発生するのは2回目なので、バージョン番号またはmysql構成である必要があると思います。

Mysqlバージョン:5.1.63-cll

テーブル:

CREATE TABLE `visits` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ref` varchar(64) DEFAULT NULL,
  `bnid` int(11) DEFAULT NULL,
  `source` varchar(256) DEFAULT NULL,
  `country` varchar(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

何か助けはありますか?

4

2 に答える 2

11

挿入クエリから「and」を削除します

insert into visits set source = 'http://google.com' , country = 'en' , ref = '1234567890'
于 2012-07-05T17:05:44.307 に答える
3

を使用する場合は、 ではなくINSERT...SETを使用してフィールドを区切ります。,AND

INSERT INTO visits SET source = 'http://google.com', country = 'en', ref = '1234567890';
于 2012-07-05T17:06:38.020 に答える