Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/10/2012, 09:19
Montes28
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
excepcion en pdo

hola amigos tengo la siguiente situacion

necesito mostrar un mensaje de error con la siguiente funcion me conecto a la base de datos y cuando ingreso mal el usuario ya la calve observo el error ose que estoy capturando bien la excepcion hasta ahi todo bien .

Código PHP:
Ver original
  1. public function conectar(){
  2.  
  3.     $usuario = $_POST['usuario'];
  4.     $contrasenia = $_POST['clave'];
  5.  
  6.                
  7.             try {
  8.                  $db = new PDO('pgsql:host=localhost;dbname=volcanoes',$usuario,$contrasenia);
  9.                 }catch(PDOException $e) {
  10.                 //echo $e->getMessage();
  11.                 echo "Usuario y Clave Invalidas";
  12.                 }
  13.                
  14.                 return $db;
  15.         }



ahora requiero caputar la excepcion en
Código PHP:
Ver original
  1. $consulta = $db->prepare("select usu_usuario, usu_clave from usuarios where usu_usuario='$usuario' and usu_clave='$clave' and usu_estado = 1");
  2.             $consulta->execute();
aprosito no envie ningun valor y me aparece el siguiente error

Fatal error: Call to a member function prepare() on a non-object in C:\websites\volcanicos\models\login_Model.php on line 16

y la linea 16 es $consulta = $db->prepare("select ussuario, usu_clave from usuar ....


Código PHP:
Ver original
  1. class Login
  2.     {
  3.        
  4.            
  5.         /*----  Validar Usuarios -----------------------------------------*/
  6.         public function validate_users($db)
  7.         {
  8.        
  9.             $usuario = $_POST['usuario'];
  10.             $clave = $_POST['clave'];
  11.            
  12.                
  13.             $consulta = $db->prepare("select usu_usuario, usu_clave from usuarios where usu_usuario='$usuario' and usu_clave='$clave' and usu_estado = 1");
  14.             $consulta->execute();
  15.            
  16.             $count = $consulta->rowCount();
  17.  
  18.            
  19.            
  20.             while($fila = $consulta->fetch())
  21.             {
  22.            
  23.             $_SESSION['nombre'] = $_POST['usuario'];
  24.             $_SESSION['clave'] = $_POST['clave'];
  25.  
  26.             header("Refresh: 0; URL=/volcanicos/");
  27.             die();
  28.            
  29.             }
  30.            
  31.    
  32.            
  33.              if (!$this->consulta)
  34.                 {
  35.                     $_SESSION['invalidate_user'] = true;
  36.                 }
  37.                
  38.         }
  39. }

por si los datos enviados por post estan vacios utilizo

if (empty($usuario) || empty($clave)) {
echo "No ingreso el Usuario y Contraseña";
}else{.....

como y donde debo de capturar la excepcion , me interesa $consulta = $db->prepare(......

Última edición por Montes28; 31/10/2012 a las 09:44