我目前有一个数组,其中包含要使用PDO插入数据库的表单中的值。
某些值是可选字段,因此有时会填充NULL
其他字段。
我插入的表大约有50行,我使用以下内容:
$sth = Database::get()->prepare("INSERT INTO $this->_insertTbl
(field1, field2, field3)
VALUES
(:field1, :field2, :field3)");
$sth->execute($dataArr);
$dataArr
有时可以包含空值,例如:
Array
(
[field1] => 44
[field2] => NULL
[field3] => Jammin
}
其他时候没有:
Array
(
[field1] => 44
[field2] => Harry
[field3] => William
}
通常使用完全填充的变量和空字符串,但似乎不适用于某些NULL
值。
通常情况下,据我所知你会使用bindValue
而不是bindParam
,但是因为我正在使用数组执行语句有任何方法,或者我需要列出每个一个人?
答案 0 :(得分:0)
NULL
不适用于绑定参数。如果值为NULL
,则跳过作业。
我之前用空字符串替换NULL
......
$params = array_map(function($param) {
return is_null($param) ? '' : $param;
}, $params);
(假设你有幸成为> = PHP 5.3。)
将列名称和值转换为数组,并将其与join()
连接。
这使您可以根据需要轻松构建某些成员。