PHP での MySQL パラメータの動的バインド
アプリケーションでは、準備された SQL クエリにパラメータを動的にバインドする必要があるシナリオに遭遇します。現在のアプローチは機能しますが、特にさまざまな数のパラメーターを処理する場合、汎用性に欠けます。
必要な柔軟性を実現するには、call_user_func_array() とアンパック演算子 (...$) を使用して次の手法を活用できます。 var):
public function get_custom_result($sql, $types = null, $params = null) { $stmt = $this->mysqli->prepare($sql); $stmt->bind_param($types, ...$params); if (!$stmt->execute()) return false; return $stmt->get_result(); }
この更新された get_custom_result() メソッドを使用すると、パラメータのタイプと値を動的に指定できます。それぞれ $types 引数と $params 引数。 ...$params 構文は配列を解凍し、各値を個別に binding_param() メソッドに渡します。
たとえば、次のクエリとパラメータの値を考えてみましょう。
$sql = " SELECT * FROM root_contacts_cfm WHERE root_contacts_cfm.cnt_id = ? AND root_contacts_cfm.cnt_firstname = ? ORDER BY cnt_id DESC"; $params = ['1', 'Tk'];
次に、動的パラメータ バインディングを使用してクエリを実行します:
$res = $output->get_custom_result($sql, 'ss', $params); while ($row = $res->fetch_assoc()) { echo $row['fieldName'] .'<br>'; }
以上がPHP でパラメータを MySQL クエリに動的にバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。