I'm calling a simple MySQL store procedure that receives 2 parameters, but when I try to get the value returned from PDO PHP I get array(0){} as result in the var_dump. Also I've tried different ways to get the value and I get boolean value (always false). When I test store procedure in DB it works correctly.
Hope you can help me to find my error. Thank you
MySQL Store Procedure:
CREATE DEFINER=`root`@`localhost` FUNCTION `F_esUsuarioValido`(`USUARIO_IN` VARCHAR(50),`CONTRASENA_IN` VARCHAR(50))
RETURNS tinyint(4)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
BEGIN
DECLARE EXISTE INT;
SELECT STATUS
INTO EXISTE
FROM T_USUARIO
WHERE USUARIO = USUARIO_IN
AND CONTRASENA = CONTRASENA_IN;
IF EXISTE IS NULL THEN
RETURN 0;
ELSEIF EXISTE = 1 THEN
RETURN 1;
ELSEIF EXISTE = 0 THEN
RETURN 2;
END IF;
END
PHP Code:
public function esUsuarioValido($usuarioIN, $contrasenaIN) {
$con = new ConexionMySQL();
$pdo = $con->conectar();
$sql = 'CALL F_esUsuarioValido(?,?)';
$stmt = $pdo->prepare($sql);
$stmt->bindParam(1, $usuarioIN, PDO::PARAM_STR);
$stmt->bindParam(2, $contrasenaIN, PDO::PARAM_STR);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($result);
}
The result I get is: array(0) {} Or bool(false) when I tried to retrive with: $result = $stmt->fetch(); var_dump($result);