「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PDO プリペアドステートメントを使用してデータベースに複数の行を挿入するにはどうすればよいですか?

PDO プリペアドステートメントを使用してデータベースに複数の行を挿入するにはどうすればよいですか?

2024 年 11 月 16 日に公開
ブラウズ:108

How to Insert Multiple Rows into a Database with PDO Prepared Statements?

PDO プリペアド ステートメントを使用した複数行の挿入

単一のプリペアド ステートメントを使用してデータベースに複数の行を挿入することは、可能であるだけでなく、次の場合にも推奨されます。その効率性とセキュリティ。

単一挿入によるアプローチクエリ

最初の方法では、複数の値を持つ単一の INSERT クエリを使用します:

INSERT INTO Table (col1, col2, col3) 
VALUES ('abc', 'def', 'ghi'),
       ('abc', 'def', 'ghi'),
       ('abc', 'def', 'ghi'),
       ('abc', 'def', 'ghi'),
       ('abc', 'def', 'ghi')
       -- and so on...

PDO を使用してこのクエリを実行するには、次の手順に従います:

$query = "INSERT INTO Table (col1, col2, col3) 
VALUES (?, ?, ?),
       (?, ?, ?),
       (?, ?, ?)
";
$params = array('abc', 'def', 'ghi', 'abc', 'def', 'ghi', 'abc', 'def', 'ghi');
$stmt = DB::getInstance()->prepare($query);
$stmt->execute($params);

個別の挿入クエリによるアプローチ

挿入する行数が多すぎる場合は、次のことが必要になる場合があります。個別の挿入クエリを実行:

$query = "INSERT INTO Table (col1, col2, col3) VALUES (".implode(',', $args).")";
$stmt = $pdo->prepare($query);

foreach ($rows as $row) 
{
   $stmt->execute($row);
}

このアプローチにより、各行が個別に挿入されるようになり、挿入中に問題が発生するリスクが最小限に抑えられます。

結論

単一の挿入を使用するかどうか複数の値を含むクエリや個々の挿入クエリに対応するため、PDO プリペアド ステートメントは、データベースに複数の行を挿入するための効率的かつ安全な方法を提供します。適切なアプローチの選択は、アプリケーションとデータベースの特定の要件によって異なります。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3