Actualmente estoy trabajando con PostgreSQL 8.4.8 conectado a PHP por medio de PDO, he realizado consultas de inserción (simple de un solo registro) como transacciones, la cual ha quedado de la siguiente manera:
Código:
más el registro que estoy guardando en el mismo formulario tiene relaciones de uno a muchos con otras entidades, mi pregunta puntual es ¿cómo podría "meter" (en la misma transacción) estas otras inserciones por medio de un bucle que recorra un array (donde estan los valores de las otras entidades)?, actualmente esto lo hago por medio de PHP y genero varias consultas de inserción, pero lo que considero ideal es que todas las inserciones queden en una misma transacción, para que se sumpla el primer principio ACID, es decir la atomicidad.$consulta = "INSERT INTO \"datosComercialesClientes\" (\"idCliente\", \"celular\", \"fax\", \"email\", \"diasPlazoCredito\", \"descuentoProntoPago\", \"descuentoComercial\", \"estadoRegistro\", \"creadoPor\", \"creadoEn\") VALUES ($idCliente, NULL, NULL, '', NULL, NULL, NULL, '1', '$idCreador', 'now'::text::timestamp without time zone)"; $guarda = $this->db->prepare($consulta); try { $this->db->beginTransaction(); $guarda->execute(); $this->db->commit(); return true; } catch (PDOException $e) { $this->db->rollback(); return false; }
Quedo atento a sus comentarios.
Muchas gracias por su atención.