sql >> データベース >  >> RDS >> Mysql

PDOを使用して1回のデータベーストリップに複数のレコードを挿入するにはどうすればよいですか?

    プレースホルダーには任意の名前を付けることができるので、SQLには次のようになります。

    INSERT INTO propAmenities 
    (amenity_id, property_id) 
    VALUES 
    (:amenity_id1, :property_id1), 
    (:amenity_id2, :property_id2), 
    (:amenity_id3, :property_id3)
    

    そして:

    $stmt->bindParam(':amenity_id1',  1);
    $stmt->bindParam(':property_id1', 1);
    $stmt->bindParam(':amenity_id2',  2);
    $stmt->bindParam(':property_id2', 1);
    $stmt->bindParam(':amenity_id3',  3);
    $stmt->bindParam(':property_id3', 1);
    

    または、もちろん、execute用の適切な配列を作成します 。この場合、名前のないプレースホルダーの方が扱いやすいかもしれません:

    INSERT INTO propAmenities 
    (amenity_id, property_id) 
    VALUES 
    (?, ?),
    (?, ?),
    (?, ?)
    

    次に、値をループしてexecuteを呼び出すことができます 適切な配列を使用:

    $stmt->execute(array(1, 1, 2, 1, 3, 1));
    


    1. 動的SQLループ

    2. 単一のクエリで再帰的なカテゴリ?

    3. JUnitテストフレームワークを使用したJavaユニットテストの調査

    4. MySQLストアドプロシージャのエラー処理