Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como faço para inserir vários registros em uma viagem de banco de dados usando PDO?


Você pode dar aos espaços reservados os nomes que quiser, então algo assim para o seu SQL:
INSERT INTO propAmenities 
(amenity_id, property_id) 
VALUES 
(:amenity_id1, :property_id1), 
(:amenity_id2, :property_id2), 
(:amenity_id3, :property_id3)

E então:
$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);

Ou, claro, construa o array apropriado para execute . Nesse caso, os espaços reservados não nomeados podem ser mais fáceis de trabalhar:
INSERT INTO propAmenities 
(amenity_id, property_id) 
VALUES 
(?, ?),
(?, ?),
(?, ?)

E então você pode percorrer seus valores e chamar execute com a matriz apropriada:
$stmt->execute(array(1, 1, 2, 1, 3, 1));