Flexible Bindung für mehrere Parameter in MySQLi-Abfragen
Um mehrere Parameter in eine MySQLi-Abfrage zu binden, wird derzeit die folgende sich wiederholende Struktur verwendet:
if ($words_total == 1) { $statement -> bind_param("s", $words[0]); } // ... more if-else conditions for each possible number of parameters ...
Um die Anzahl der in der Abfrage benötigten Fragezeichen zu berechnen, lautet der folgende Code verwendet:
$marks = ""; for($i = 1; $i<=$words_total; $i++) { if ($i == $words_total) $marks .= "?"; else $marks .= "?,"; }
Verbesserter Ansatz mit Argument-Unpacking
Glücklicherweise führt PHP 5.6 den Argument-Unpacking-Operator (...) ein, der die Bindung mehrerer Parameter vereinfacht . Anstatt sich auf statische Zeichenfolgen zu verlassen, kann der Operator mit einem Array verwendet werden:
// 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);
Mit diesem Ansatz kann die Bindung unabhängig von der Anzahl der Parameter dynamisch gehandhabt werden.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Parameter in MySQLi-Abfragen effizient binden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!