Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/10/2010, 13:47
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Validar ejecución de un SP en php

Buenas,

Tengo mi clase usuario la cual llama a un Stored Procedure en mysql, me gustaría verificar si se ha ejecutado correctamente.

Lo he probado de la siguiente forma pero ni forzando errores en los parametros de entrada me muestra ningún error. Lo único eso sí, que la transacción no se ejecuta.

Probé con try y catch dentro y fuera de la función pero nada, no me muestra ningún error. Sin embargo cuando cojo la consulta y la pongo en la consola mysql si que hay errores.

Código PHP:
Ver original
  1. public function addNewUser($nombre,$usuario,$password,$correo,$pais,$birthday,$sexo,$userReferido){
  2.        
  3.         $this->_nombre=$nombre;
  4.         $this->_usuario=$usuario;
  5.         $this->_password=$password;
  6.         $this->_correo=$correo;
  7.         $this->_pais=$pais;
  8.         $this->_birthday=$birthday;
  9.         $this->_sexo=$sexo;
  10.         $this->_userReferido=$userReferido;
  11.         $this->_userKey = $this->randomKeygen($length=10);
  12.         $this->_ip=getRealIP();
  13.                
  14.         try{
  15.             $query = "CALL sp_nuevoUsuario (:user_login,:user_pass,:user_activation_key,:user_name,:user_mail,:user_birthday,:user_sexo,:user_pais,:ip)";
  16.             $comando = $this->_con->prepare($query);
  17.             $comando->execute(array(':user_login'=>$this->_usuario,
  18.                                     ':user_pass'=>$this->_password,
  19.                                     ':user_activation_key'=>$this->_userKey,
  20.                                     ':user_name'=>$this->_nombre,
  21.                                     ':user_mail'=>$this->_correo,
  22.                                     ':user_birthday'=>$this->_birthday,
  23.                                     ':user_sexo'=>$this->_sexo,
  24.                                     ':user_pais'=>$this->_pais,
  25.                                     ':ip'=>$this->_ip));
  26.         } catch (Exception $e) {
  27.             echo $e->getMessage();
  28.             echo "<br/>Ocurrio un error";
  29.             exit;
  30.         }
  31.     }
  32.  
  33. //Valores de ejemplo (tras rellenar formulario de registro)
  34. $nombre='Dani';
  35. $usuario='neodani';
  36. $password='12345';
  37. $pais='error'; /* FORZANDO EL ERROR SOLO SOPORTA INT */
  38. $birthday='1985-12-21';
  39. $sexo='H';
  40. $userReferido='';
  41.  
  42. try{
  43.     $userTest->addNewUser($nombre,$usuario,$password,$correo,$pais,$birthday,$sexo,$userReferido);
  44. } catch (Exception $e) {
  45.     echo $e->getMessage();
  46.     echo "<br/>Ocurrio un error";
  47.     exit;
  48. }

¿Sabéis cómo debo hacerlo? ¿Hago algo mal?

Muchas gracias de antemano