Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie füge ich mit PDO mehrere Datensätze in eine Datenbankreise ein?

Sie können den Platzhaltern beliebige Namen geben, also etwa so für Ihr SQL:

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

Und dann:

$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);

Oder bauen Sie natürlich das entsprechende Array für execute . In diesem Fall ist es jedoch möglicherweise einfacher, mit unbenannten Platzhaltern zu arbeiten:

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

Und dann können Sie Ihre Werte durchlaufen und execute aufrufen mit dem entsprechenden Array:

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