Cita:
Iniciado por GatorV Donde implementes me refiero a donde estes usando las clases, por ejemplo:
Código PHP:
Ver originaltry {
$cat= new Categoria();
$cat->listarCategorias($db_slave); // Leo de la BBDD slave
$cat->listarPartidos($db_master); // Ejemplo leyendo de otra BBDD master
} catch (PDOException $pe) {
echo $pe->getMessage();
}
Así puedes controlar mucho mejor el flujo si se ocasiona algún problema o cachar diferentes tipos de excepciones.
Saludos.
Lo he añadido donde me comentas pero es como si no hiciese caso, ya que el mensaje de error que muestra no el "correcto".
Código PHP:
Ver originaltry {
// Creo el primer objeto el cual hace una conexion con la BBDD slave
$cat= new Categoria($db_slave);
$cat->listarCategorias(); // Leo de la BBDD slave
} catch(PDOException $e){
echo $e->getMessage();
echo "Hubo un error";
}
He modificado el nombre de la base de datos en el fichero de .ini por uno que no existe y me produce el siguiente error:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000] [1049] Unknown database 'code3lab'' in C:\wamp\www\00-laboratorio_test\secciones\class_categorias\Nueva\ ConectarCon2_BD_version2\MyPDO.class.php:25 Stack trace: #0 C:\wamp\www\00-laboratorio_test\secciones\class_categorias\Nueva\ ConectarCon2_BD_version2\MyPDO.class.php(25): PDO->__construct('mysql:host=loca...', 'root', 'jupiter') #1 C:\wamp\www\00-laboratorio_test\secciones\class_categorias\Nueva\ ConectarCon2_BD_version2\ejemplo1.php(59): MyPDO->__construct(Object(Config)) #2 {main} thrown in C:\wamp\www\00-laboratorio_test\secciones\class_categorias\Nueva\ ConectarCon2_BD_version2\MyPDO.class.php on line 25
La linea 25 hace de la clase MyPDO.class.php hace referencia a aquí
parent::__construct($this->_dsn, $this->_username, $this->_password);
¿Por qué no captura correctamente la excepción?
Ademas tengo puesto justo despues de la creación de los objetos de base de datos el setAttribute, por lo que el error tb debería ser diferente no?
$db_slave = new MyPDO($config_slave);
$db_slave->setAttribute(MyPDO::ATTR_ERRMODE, MyPDO::ERRMODE_EXCEPTION);
$db_master = new MyPDO($config_master);
$db_master->setAttribute(MyPDO::ATTR_ERRMODE, MyPDO::ERRMODE_EXCEPTION);
¿Sabes por qué?