MySQLi 查詢中多個參數的靈活綁定
目前,為了將多個參數綁定到MySQLi 查詢中,採用以下重複結構:
if ($words_total == 1) { $statement -> bind_param("s", $words[0]); } // ... more if-else conditions for each possible number of parameters ...
要計算查詢中需要的問號數量,以下程式碼使用的是:
$marks = ""; for($i = 1; $i<=$words_total; $i++) { if ($i == $words_total) $marks .= "?"; else $marks .= "?,"; }
參數拆包的改良方法
幸運的是,PHP 5.6 引入了參數拆包運算子(...),它簡化了多個參數的綁定參數。此運算子可以與陣列一起使用,而不是依賴靜態類型字串:
// create an array of parameter values $parameters = [$words[0], $words[1], ... $words]; // create a type string dynamically $types = str_repeat('s', count($parameters)); // bind the array using argument unpacking $statement -> bind_param($types, ...$parameters);
透過這種方法,無論參數數量如何,都可以動態處理綁定。
以上是如何在MySQLi查詢中高效綁定多個參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!