複数のパラメータを MySQLi クエリに動的にバインドする
MySQLi クエリで複数のパラメータを処理する必要が生じることがよくあり、そうするための効率的かつ動的なアプローチ。条件付きステートメントとハードコーディングの binding_param() を含む現在のメソッドは柔軟性に欠けており、退屈になる可能性があります。
Argument Unpacking Operator
幸いなことに、PHP 5.6 では、引数という革命的な機能が導入されました。開梱オペレーター。この演算子を使用すると、配列を binding_param() に渡すことができるため、手動でパラメータを数えたり、型文字列を作成したりする必要が実質的になくなります。
IN() 演算子を使用した例を次に示します。
// Array of values $array = ['a', 'b', 'c']; // Prepare SQL query with placeholders $in = str_repeat('?,', count($array) - 1) . '?'; $sql = "SELECT name FROM table WHERE city IN ($in)"; $stmt = $mysqli->prepare($sql); // Create the types string dynamically $types = str_repeat('s', count($array)); // Bind the array to the prepared statement using argument unpacking $stmt->bind_param($types, ...$array);
引数アンパック演算子 ('...') は、配列要素を個々の変数に分散し、それらを 1 つにバインドできるようにします。 step.
実行と結果の処理
パラメーターがバインドされると、通常どおりクエリを実行して結果を取得できます。
// Execute the statement and fetch the results $stmt->execute(); $result = $stmt->get_result(); $data = $result->fetch_all(MYSQLI_ASSOC);
引数アンパック演算子を利用することで、MySQLi クエリ内の任意の数のパラメータを簡単かつ効率的に処理できるようになり、複雑な条件文とハードコーディングの必要性。
以上がPHP の引数アンパック演算子は、動的 MySQLi クエリ パラメータ バインディングをどのように簡素化できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。