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:
y en mi PHP lo llamo asi: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
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";
}
}