PHPにおけるPDOを使用したプリペアドステートメントの複数回実行
データベースクエリ用のプリペアドステートメントを複数回実行することができます。これは、毎回新しく準備するよりも、リソース的にはわずかに有利です。
例として、テーブル内のユーザーの給与を更新するクエリを実行する必要があるとします。
すでに連想配列があり、キーとしてユーザーのidが、値としてその給与が指定されているとします:
<?php
$salaries = [
1 => 200,
3 => 500,
5 => 700,
];
?>
一度だけクエリを準備します:
<?php
$res = $pdo->prepare('UPDATE users SET salary=? WHERE id=?');
?>
次に、ループで配列を反復処理し、プレースホルダーに異なるデータを指定して、各反復で準備されたクエリを実行します:
<?php
foreach ($salaries as $id => $salary) {
$res->execute([$salary, $id]);
}
?>
ユーザーのIDと年齢を持つ配列があります:
<?php
$ages = [
1 => 20,
3 => 30,
5 => 40,
];
?>
ループ内でユーザーデータを更新するコードを記述してください。