Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/04/2011, 16:40
Avatar de HiToGoRoShi
HiToGoRoShi
 
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años, 7 meses
Puntos: 31
Como capturar errores de querys malo?

Como puedo capturar un error en PDO pero usando try catch

Ejemplo

Código PHP:
Ver original
  1. public function listarAlumnos() {
  2.         $objMysql = registry::get ( 'mysql' );
  3.            
  4.         $sql = 'SELECT * FROM alumno'; //Armamos el query a realizar
  5.        
  6.         $query = $objMysql->prepare ( $sql ); //Preparando el query
  7.         $query->execute (); //Ejecutamos el query
  8.        
  9.         $arrAlumnos = $query->fetchAll (); //Recogemos los resultados, esto retorna un arreglo     
  10.         include_once (_path . 'app/model/dto/alumno.dto.php'); //Cargamos nuestra clase AlumnoDTO
  11.  
  12.         foreach ( $arrAlumnos as $alumno ) {
  13.             $alumnoDTO = new AlumnoDTO ();
  14.            
  15.             $alumnoDTO->setIdAlumno($alumno['idAlumno']);
  16.             $alumnoDTO->setNombre($alumno['nombre']);
  17.             $alumnoDTO->setApellidoPaterno($alumno['apellidoPaterno']);
  18.             $alumnoDTO->setApellidoMaterno($alumno['apellidoMaterno']);
  19.             $alumnoDTO->setCreditos($alumno['creditos']);
  20.             $alumnoDTO->setFecha_nac($alumno['fecha_nac']);
  21.            
  22.             $objAlumno[] = $alumnoDTO;
  23.         }
  24.        
  25.         array_debug($query->errorInfo());
  26.        
  27.         if($query->rowCount() > 0) return $objAlumno;
  28.         else return false;
  29.     }


Justamente, si se pusiera SELECTT, con doble T quisiera imprimir el error de sintaxis, obviamente ese error no llegaria a pasar pero quiero hacerlo ocmo prueba no mas, supongamos que hacemos esto


SELECT * FROM alumno where idAlumno = '$idAlumno', esa variable idAlumno nunca llego ahi si evotaria error pero el PDO no me imprime el mensaje de error de sintaxis, tengo que usar $query->errorInfo() guardarlo e imprimir el indice 2, quiero hacerlo con try catch nada mas

Salu2