首頁 >後端開發 >php教程 >在 PHP 中處理空值時如何使用「bind_param()」動態綁定參數?

在 PHP 中處理空值時如何使用「bind_param()」動態綁定參數?

Linda Hamilton
Linda Hamilton原創
2024-10-30 09:17:02772瀏覽

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