sql >> Database teknologi >  >> RDS >> Mysql

Hvordan indsætter jeg flere poster i én databasetur ved hjælp af PDO?

Du kan give pladsholderne hvilke navne du vil have, så noget som dette for din SQL:

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

Og så:

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

Eller, selvfølgelig, byg det passende array til execute . I dette tilfælde kan ikke-navngivne pladsholdere dog være nemmere at arbejde med:

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

Og så kan du gå gennem dine værdier og kalde execute med det passende array:

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


  1. Skift unik nøgle sammen i mysql

  2. Give privilegier på fremtidige borde i PostgreSQL?

  3. Hvorfor indsætte TSQL-sætningsblok, når transaktionsisolationsniveau for en anden transaktion kan serialiseres med et ikke-konfliktende filter?

  4. Skal jeg bruge MyISAM- eller InnoDB-tabeller til min MySQL-database?