将正在运行的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
行呢?
答案 0 :(得分:2)
当您将项目移动到较新的服务器时,mysql版本可能也从版本4. *增加到5. *这在将空字符串插入整数列方面不太宽容。
因此,您应该更新代码以将空字符串更改为NULL或整数值。
来源:MySQL 5 - Incorrect integer value: '' for column 'id' at row 1