PHP の PDO クラスでは、プリペアド ステートメントへの値のバインドが 1 つずつ行われることがよくあります。このアプローチは機能しますが、特に多数の値を処理する場合は、退屈で反復的な作業になる可能性があります。幸いなことに、PDO はこのプロセスを効率化するための代替手段を提供します。
execute() メソッドの引数を利用することで、複数の値を同時にバインドできます。パラメータ名と対応する値を含む連想配列を引数として渡すだけです。たとえば、次のコードを考えてみましょう:
$result_set = $pdo->prepare("INSERT INTO `users` (`username`, `password`, `first_name`, `last_name`) VALUES (:username, :password, :first_name, :last_name)"); $result_set->execute([ ':username' => '~user', ':password' => '~pass', ':first_name' => '~John', ':last_name' => '~Doe' ]);
この場合、配列は値をそれぞれのパラメータに効果的に「バインド」します。 PDO は、明示的に指定されていない限り、これらの値を自動的に文字列 (PDO::PARAM_STR) として扱います。
さらに、execute() メソッドに渡される配列を通常の PHP 配列として使用できます。たとえば、値「Nile」を含む変数 $user がある場合、次の構文を使用してパラメータ (:user) にバインドできます。
$pdo->execute([":user" => $user]);
このメソッドは、簡潔で効率的な方法を提供します。 PDO で複数の値をバインドするため、bindValue() を繰り返し呼び出す必要がなくなり、コードの保守性が向上します。
以上がPDO で複数の値を効率的にバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。