不知何故,当使用带有execute()函数的多行insert将数据导入mysql时,对于某些列,有许多行添加了字符串NULL。如何将这些空字符串转换为MySQL空值,以便在显示数据时使用php中的is_null()检查空值。
我怎样才能避免这个问题?我使用quote()函数处理每一段数据。这就是在空字段上使用引号的问题吗?我正在导入csv文件。
谢谢
发布于 2010-01-25 23:41:37
要插入SQL NULL或任何其他表达式,可以使用Zend_Db_Expr对象。即使您使用quote(),ZF也会通过未引用的方式传递这些对象。
$null = new Zend_Db_Expr("NULL");
$table = new MyTable();
$table->insert(123, "abc", $null);请注意,因为使用Zend_Db_Expr绕过了引用和参数化,所以您有责任防止SQL注入。
这与您的问题无关,但是如果您正在批量加载CSV文件,请考虑使用LOAD DATA INFILE。它甚至可以比使用多行INSERT快20倍。
https://stackoverflow.com/questions/2133331
复制相似问题