【问题标题】:INSERT INTO table VALUES.. vs INSERT INTO table SET ErrorINSERT INTO 表 VALUES .. vs INSERT INTO 表 SET 错误
【发布时间】:2012-07-06 03:20:38
【问题描述】:

我正在尝试运行以下查询:

"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 改成了一个,但它没有。这是本周我第二次在两个不同的 VPS 中使用 cpanel 遇到这个问题,所以我猜它应该是版本号或 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

有什么帮助吗?

【问题讨论】:

    标签: php mysql sql mysqli mysql-5.1


    【解决方案1】:

    从插入查询中删除“和”

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

    【讨论】:

    • upps 我为自己感到羞耻...对不起
    • 别担心,我们最好的人都会遇到的:)
    【解决方案2】:

    使用INSERT...SET 时,使用, 分隔字段,而不是AND

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

    【讨论】:

      猜你喜欢
      • 2010-10-26
      • 2016-06-09
      • 1970-01-01
      • 2011-07-17
      • 2015-11-17
      • 1970-01-01
      • 1970-01-01
      • 2016-09-10
      • 1970-01-01
      相关资源
      最近更新 更多