2012-07-05 93 views
4

我試圖運行下面的查詢:INSERT INTO表值.. VS INSERT INTO表中設置錯誤

"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在兩個不同的VPS中得到這個問題,所以我猜它應該是版本號或mysql配置。

MySQL版本:63年5月1日-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 

任何幫助嗎?

+0

刪除和查詢 – 2012-07-05 18:06:27

回答

10

從插入查詢

insert into visits set source = 'http://google.com' , country = 'en' , ref = '1234567890' 
+0

UPPS我很慚愧......對不起 – jribeiro 2012-07-05 17:10:30

+0

不要着急,恰巧我們最好的:) – 2012-07-05 17:11:31

2

刪除 '和' 當使用INSERT...SET,使用,,不AND分隔字段。

INSERT INTO visits SET source = 'http://google.com', country = 'en', ref = '1234567890';