无法摆脱错误号:1366不正确的整数值

时间:2017-01-04 21:25:43

标签: php mysql codeigniter

将正在运行的CodeIgniter站点移动到新服务器后,它在更新或创建记录时开始显示Error Number: 1366 Incorrect integer value: '' for column...

由于有大约40个字段需要更新,大约有200个字段与此相关,我宁愿有一个简单的解决方案。我将此代码添加到模型中以修复任何空字符串,但不知何故不起作用:

      foreach($data as $key => $val)
      {
        echo $key." => ".$val."<br/>";
        if ($val = '') {
            $data[$key] = NULL;
            echo "^^ string changed to NULL<br/>";
        }
        echo "<br/>";
      }

我已经尝试过对这些问题的一些答案所显示的解决方案:

#1366 - Incorrect integer value:MYsql After installing latest version of MySQL then I get error : #1366 - Incorrect integer value: '' for column 'group_id' at row 1 After installing latest version of MySQL then I get error : #1366 - Incorrect integer value: '' for column 'group_id' at row 1

基本上,从 my.cnf 文件中删除STRICT_ALL_TABLES,验证CI的数据库配置参数'stricton'是否设置为FALSE和/或设置{{1在我的php文件上。

我仍然遇到同样的错误。当运行SHOW VARIABLES时,它显示SET sql_mode = ""所以我猜sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION不会覆盖以前的配置,但我宁愿保持本地而不是全局。 CI的数据库配置参数是否应该覆盖~/.my.cnf行呢?

1 个答案:

答案 0 :(得分:2)

当您将项目移动到较新的服务器时,mysql版本可能也从版本4. *增加到5. *这在将空字符串插入整数列方面不太宽容。

因此,您应该更新代码以将空字符串更改为NULL或整数值。

来源:MySQL 5 - Incorrect integer value: '' for column 'id' at row 1