Acabo de realizar la siguiente prueba...
Código PHP:
Ver original<?php
require_once 'include/cls.trans.DB.php'; // invoco la pagina que conecta a la base de datos
$conexion = DB::getInstance(); //obtengo una instancia de la conexion
try{
$conexion->comenzartransaccion();
// insert que no provoca error
$array = array(2, 'Probando', 1); $conexion->prepararInsersiones("INSERT INTO tbl_ciudad (id_dpto, ciudad_nombre, ciudad_estado) VALUES (?, ?, ?)");
$conexion->ejecutar($array);
// provocar error
$array2 = array('sapo', 'Otro', 1); $conexion->prepararInsersiones("INSERT INTO tbl_ciudad (id_dpto, ciudad_nombre, ciudad_estado) VALUES (?, ?, ?)");
$conexion->ejecutar($array2);
$conexion->commiter();
echo "Todo bien...!";
}catch(PDOException $e){
//$conexion->rollback();
}
?>
Como pueden ver el primero esta bien, el segundo NO PORQUE EL PRIMER CAMPO ES INTEGER y le puse 'sapo', y déjenme decirles que NO INSERTO EL PRIMERO TAMPOCO, pero si comento el segundo INSERT si me inserta el primero... entonces mira que si una no se cumple NO HACE NADA DEL BLOQUE TRY.
Error generado:
Incorrect integer value: 'sapo' for column 'id_dpto' at row 1