首页 >后端开发 >php教程 >在 PHP 中处理空值时如何使用'bind_param()”动态绑定参数?

在 PHP 中处理空值时如何使用'bind_param()”动态绑定参数?

Linda Hamilton
Linda Hamilton原创
2024-10-30 09:17:02732浏览

How to Dynamically Bind Parameters with `bind_param()` When Handling Empty Values in PHP?

使用bind_param()进行动态变量绑定

当使用bind_param()的可变数量的输入变量时,处理空值可以是挑战。由于 $_POST 值为空,尝试在占位符字符串中使用“...”可能不可行。

此问题的解决方案是使用 call_user_func_array() 将可变数量的参数传递给 bind_param () 方法:

<code class="php">$parameterNames = array('myvar1', 'myvar2', /* ... */);
$parameters = array();
foreach ($parameterNames as $name) {
    if (isset($_POST[$name]) && $_POST[$name] != '') {
        $parameters[$name] = $_POST[$name];
    }
}

if (count($parameters)) {
    $query = 'UPDATE mytable SET ';
    foreach ($parameters as $name => $value) {
        $query .= $name.'=?,';
    }
    $query = substr($query, 0, -1); // Remove trailing comma
    $query .= 'WHERE id = ?';

    $statement = $mysqli->prepare($query);
    $typeString = str_repeat('s', count($parameters));
    $parameters = array_merge(array($typeString), array_values($parameters));
    call_user_func_array(array($statement, 'bind_param'), $parameters);
}</code>

此方法允许您根据可用的 $_POST 值动态生成 SQL 查询,确保更新语句中仅包含非空值。

以上是在 PHP 中处理空值时如何使用'bind_param()”动态绑定参数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn