gpt4 book ai didi

php - 使用包含空值的数组执行 PDO 准备语句

转载 作者:可可西里 更新时间:2023-10-31 23:50:09 24 4
gpt4 key购买 nike

我目前有一个数组,其中包含要使用 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,但是当我使用数组执行语句时,有什么办法可以解决这个问题,或者我需要逐一列出吗?

最佳答案

根据我的经验,

NULL 不适用于绑定(bind)参数。如果值为 NULL,则跳过赋值。

之前我还用空字符串替换了 NULL...

$params = array_map(function($param) {
return is_null($param) ? '' : $param;
}, $params);

CodePad .

(假设您足够幸运能够使用 >= PHP 5.3。)

更新

将您的列名和值转换为数组,并使用 join() 将它们连接起来。

这使您可以根据需要轻松构建某些成员。

关于php - 使用包含空值的数组执行 PDO 准备语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7154623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com