ホームページ >データベース >mysql チュートリアル >単一の PDO クエリで MySQL データベースに複数の行を挿入するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。