sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo inserto varios registros en un viaje de base de datos usando PDO?

Puede dar a los marcadores de posición los nombres que desee, así que algo como esto para su SQL:

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

Y luego:

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

O, por supuesto, construya la matriz apropiada para execute . En este caso, podría ser más fácil trabajar con marcadores de posición sin nombre:

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

Y luego puede recorrer sus valores y llamar a execute con la matriz adecuada:

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