使用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中文網其他相關文章!