ホームページ >データベース >mysql チュートリアル >単一の PDO クエリで MySQL データベースに複数の行を挿入するにはどうすればよいですか?

単一の PDO クエリで MySQL データベースに複数の行を挿入するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-07 02:59:03669ブラウズ

How to Insert Multiple Rows into a MySQL Database with a Single PDO Query?

PDO MySQL: BindValues を使用して単一のクエリに複数の行を挿入

PHP データ オブジェクト (PDO) を使用して 1 つのクエリで MySQL データベースに複数の行を挿入するには、次のことを考慮してください。次の手順:

1.クエリを準備します:
挿入する値のプレースホルダーを使用して、カスタマイズ可能なクエリ文字列を作成します。例:

$query = "INSERT INTO $table (key1, key2, key3) VALUES (?, ?, ?)";

2.値をプレースホルダーにバインドする:
プリペアド ステートメントの bindingValue() メソッドを使用して、データ配列の値をクエリ内のプレースホルダーにバインドします。

$i = 1;
foreach ($data as $item) {
    $stmt->bindValue($i++, $item['key1']);
    $stmt->bindValue($i++, $item['key2']);
    $stmt->bindValue($i++, $item['key3']);
}

3.クエリを実行します:
最後に、準備されたステートメントを実行します。これにより、すべてのバインドされた値がデータベースに挿入されます。

$stmt->execute();

例:
これはこの手法をコードに実装する方法の例:

$pdo = new PDO('mysql:host=localhost;dbname=database_name', 'username', 'password');

$query = "INSERT INTO table_name (column1, column2) VALUES (?, ?), (?, ?), (?, ?)";

$data = [
    ['value1', 'value2'],
    ['value3', 'value4'],
    ['value5', 'value6'],
];

$stmt = $pdo->prepare($query);

$i = 1;
foreach ($data as $item) {
    $stmt->bindValue($i++, $item[0]);
    $stmt->bindValue($i++, $item[1]);
}

$stmt->execute();

このメソッドを利用すると、元のコードの制限を回避し、単一のクエリで複数の行を MySQL データベースに効率的に挿入できます。

以上が単一の PDO クエリで MySQL データベースに複数の行を挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。