如何在MySQLi中實現空POST參數的變數輸入綁定?

Linda Hamilton
發布: 2024-10-26 14:52:30
原創
205 人瀏覽過

How to Achieve Variable Input Binding in MySQLi with Empty POST Parameters?

MySQLi 中的變數輸入綁定

在 MySQLi 中,希望透過綁定參數來防止 SQL 注入並最佳化效能。但是,如果某些 POST 參數為空,則需要單獨處理它們。

一個可能的方法是使用 call_user_func_array 函數以可變數量的參數呼叫 bind_param 方法。這使我們能夠動態建構查詢字串並僅為非空值綁定參數。

這是一個範例:

<code class="php">$paramNames = array('myvar1', 'myvar2', /* ... */);
$params = array();
foreach ($paramNames as $name) {
    if (isset($_POST[$name]) && $_POST[$name] != '') {
        $params[$name] = $_POST[$name];
    }
}
if (count($params)) {
    $query = 'UPDATE mytable SET ';
    foreach ($params as $name => $val) {
        $query .= $name.'=?,';
    }
    $query = substr($query, 0, -1);
    $query .= 'WHERE id = ?';
    $stmt = $mysqli->prepare($query);
    $params = array_merge(array(str_repeat('s', count($params))), array_values($params));
    call_user_func_array(array(&$stmt, 'bind_param'), $params);
}</code>
登入後複製

此程式碼循環遍歷 POST 參數,檢查它們是否是設定且不為空,並將它們加到陣列中。然後,它動態建立帶有非空參數的查詢字串,並使用 call_user_func_array 綁定值。

透過單獨處理空 POST 參數,我們可以在 MySQLi 中實現變數輸入綁定,確保只更新有效資料資料庫並避免不必要的更新。它是一種多功能且靈活的解決方案,可適應各種輸入組合。

以上是如何在MySQLi中實現空POST參數的變數輸入綁定?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!