【发布时间】:2014-08-12 10:18:48
【问题描述】:
我正在将 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,无符号,允许为空,默认为空。要添加的一件事是,它看起来像在 Laravel 创建的 SQL 插入语句中,它将空值视为空格。无论如何,我的生产机器运行脚本没有问题,但它不会在本地运行。
【问题讨论】:
-
您是否在本地和生产环境中运行相同版本的 PHP 和 Laravel?即“mySQL”版本是唯一的区别吗?
-
能否提供一些处理 CSV 的代码以及将其插入数据库的代码?
-
好点。本地 PHP 是 5.5.13。生产是 PHP 5.5.13-2+deb.sury.org~precise+1。至于代码,我在laravel.io/bin/21PnN 放了一些。请记住,CSV 是由州发送给我的,因此我无法控制其中的大小或内容。
标签: php mysql sql laravel laravel-4