对于整数并允许为null的MySQL列,整数值''是否不正确?

时间:2014-06-22 03:35:35

标签: php mysql sql laravel laravel-4

我正在努力将CSV插入表格中。我无法控制CSV中的内容,而且很多字段都是空白的。例如,在我的第一个记录中,该字段" baths_full"只是空的(两个逗号背靠背)。

在运行MySQL 5.5.37的生产服务器上,它将baths_full的记录作为空字段插入。在运行MySQL 5.6.19的本地计算机上,它给出了错误:

[Illuminate\Database\QueryException]
SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'baths_full' at row 1 (SQL: insert into `listings_queue` (`

奇怪的是表格的架构是相同的。实际上,我使用生产机器的导出来创建本地数据库。

字段baths_full设置为TinyInt,unsigned,allow null,默认为null。要添加的一件事是它看起来像在Laravel正在创建的SQL插入语句中,它将空值视为空格。无论如何,我的生产机器运行脚本没有问题,但在本地它不会运行。

2 个答案:

答案 0 :(得分:5)

我发现了我的问题。我的本地MySQL以严格模式运行。这个帖子(General error: 1366 Incorrect integer value with Doctrine 2.1 and Zend Form update)的答案修正了它。

答案 1 :(得分:-3)

为什么不在插入之前尝试将其类型转换为整数?

array( 'baths_full' => (int) $baths_full, ... )

"VALUES(".((int) $baths_full).")"
相关问题