tengo una tabla llamada propAmenities
que tiene dos columnas amenity_id
y property_id
básicamente la tabla contiene las claves foráneas.¿Cómo inserto múltiples registros en un viaje de base de datos usando PDO?
ahora tengo que generar una consulta PDO utilizando marcador de posición con nombre para la siguiente declaración.
INSERT INTO propAmenities (amenity_id, property_id) VALUES (1, 1), (2, 1), (3, 1)
intenté usar la siguiente sintaxis pero no estoy seguro de si esto funcionará.
$sth->$this->dbh->prepare('INSERT INTO
propAmenities
(amenity_id, property_id)
VALUES
(:amenity_id, :property_id),
(:amenity_id, :property_id),
(:amenity_id, :property_id)');
y para la consulta anterior, no estoy seguro de cómo utilizo el bindParam() de PDO ¿Cómo manejo esta situación usando PDO? ¿Estoy usando los Placeholders de PDO incorrectos?
guau, esa fue una muy buena explicación, y además creo que es mejor usar marcadores de posición no nombrados que el nombre. –
@Ibrahim: Gracias. Nombrado versus no nombrado depende del contexto. En este caso específico, los marcadores de posición sin nombre son probablemente más fáciles, pero si estuviera insertando filas con más de dos columnas, entonces los marcadores de posición con nombre (con sufijos numéricos como los anteriores) probablemente serían más fáciles de entender de un vistazo. En general, me inclino por los marcadores de posición con nombre ya que hacen que su código sea más fácil de entender y menos propenso a errores. OTOH, si está creando los marcadores de posición y valores usando matrices paralelas (una para los signos de interrogación, una para los valores), los marcadores de posición sin nombre podrían ser más fáciles. Por lo tanto, depende. –