Foros del Web » Programando para Internet » PHP »

SQLSTATE[HY000]: General error en consulta a procedimiento

Estas en el tema de SQLSTATE[HY000]: General error en consulta a procedimiento en el foro de PHP en Foros del Web. Estimados, Debo acudir a ustedes en esta ocasión por un error que escapa a mi comprensión, el tema es el siguiente. tengo un procedimiento almacenado ...
  #1 (permalink)  
Antiguo 16/01/2017, 15:31
 
Fecha de Ingreso: diciembre-2008
Mensajes: 88
Antigüedad: 15 años, 4 meses
Puntos: 0
SQLSTATE[HY000]: General error en consulta a procedimiento

Estimados,
Debo acudir a ustedes en esta ocasión por un error que escapa a mi comprensión, el tema es el siguiente.

tengo un procedimiento almacenado el cual devuelve los datos de usuario si este existe o los registra si no existe, el procedimiento almacenado funciona y todo pero cuando lo ejecuto desde PHP me lanza el SQLSTATE[HY000]: General error e ingresa el registro del cliente.

Codigo MYSQL

Código:
BEGIN
  declare existe int;
  
  SELECT count(cliente.rut) into existe
  FROM cliente 
  WHERE cliente.rut=p_rut;
  
  CASE existe
        WHEN 1 THEN
            SELECT * FROM cliente where cliente.rut=p_rut;
        WHEN 0 THEN 
             INSERT INTO cliente
                   (idcliente, rango_renta_idrango_renta, rut, nombre, apellidos, correo)
             VALUES
                   (NULL, p_rango_renta_idrango_renta, p_rut, p_nombre, p_apellidos, p_correo);
  END CASE;
END
y en mi PHP lo llamo asi:
Código PHP:
public function setCliente($rango_renta,$rut,$nombre,$apellidos,$correo)
    {
        try
        {                                                          
            
$stmt $this->conn->prepare("CALL setcliente(:rut,:rango_renta, :nombre, :apellidos, :correo);");

            
$stmt->bindparam(":rango_renta",$rango_renta);
            
$stmt->bindparam(":rut",$rut);
            
$stmt->bindparam(":nombre",$nombre);
            
$stmt->bindparam(":apellidos",$apellidos);
            
$stmt->bindparam(":correo",$correo);
            
$stmt->execute();    
            
            
            
$num_rows $stmt->rowCount();
            echo 
$num_rows."largo";
            if(
$num_rows>0)
            {
                
$row $stmt->fetchAll();
                foreach(
$row as $val)
                {
                    echo 
$val[0]." - ".$val[1]." - ".$val[2]." - ".$val[3]." - ".$val[4]." - ".$val[5];
                }
                return 
$stmt;
            }
            else
            {
                return 
$stmt;
            }
            
//return $stmt;
        
}
        catch(
PDOException $ex)
        {
            echo 
$ex->getMessage()." Error en php";
        }
    } 
  #2 (permalink)  
Antiguo 17/01/2017, 07:54
 
Fecha de Ingreso: diciembre-2015
Ubicación: rosario
Mensajes: 69
Antigüedad: 8 años, 5 meses
Puntos: 5
Respuesta: SQLSTATE[HY000]: General error en consulta a procedimiento

primero no se xq haces todo junto, es decir, porque no haces un setter y un getter, seria la mas legible y ordenado.
Segundo me parece que el error te lo da fetchAll(); cuando haces una insercion, proba de comentarle toda esa parte cuando envias un usuario nuevo. Si no tira error vas a tener que ver como manejar esa validacion ya que creo que $stmt->rowCount(); tambien te devuelve uno si inserto

Etiquetas: correo, general, mysql, procedimiento, registro, select, sql, usuario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:10.