gpt4 book ai didi

php - 当我使用输出参数调用存储过程时,mysql 中出现错误代码 1414

转载 作者:行者123 更新时间:2023-11-29 18:34:32 25 4
gpt4 key购买 nike

我试图从我的 codeigniter 代码中调用存储过程 (SP),但我在 Mysql SP 中定义的参数之一是 OUTPUT 参数,该参数在调用 SP 时给我带来了一些问题。有谁知道从 PHP 代码中调用带有 OUTPUT 参数的 Sp 的正确方法。代码如下:

MySql:

DROP PROCEDURE IF EXISTS usp_check_user_exist;
DELIMITER $$
CREATE PROCEDURE usp_check_user_exist
( IN email VARCHAR(200),
OUT result BIT(1) )
BEGIN
SET result = EXISTS(SELECT 1 FROM tbl_users WHERE user_email = email
LIMIT 1);
SELECT result;
END

Codeigniter/php:

public function check_email($email) {

$data = array(
'email' => $email,
'@result' => @result
);


$sp = "CALL usp_check_user_exist (?,?)";
$result = $this->db->query($sp, $data);

if($result) {
return TRUE;
} else {
return FALSE;
}

}

我得到的错误:

Database error:

最佳答案

您的存储过程有错误。请检查下面描述的正确定义。

DELIMITER $$

DROP PROCEDURE `usp_check_user_exist`$$

CREATE PROCEDURE `usp_check_user_exist`(IN email VARCHAR(200))
BEGIN
DECLARE result TINYINT DEFAULT 0;
SET result = EXISTS(SELECT 1 FROM tbl_users WHERE user_email = email 1);
SELECT result;
END$$

DELIMITER ;

此外,如果您想使用当前的存储过程,而不是从 PHP 使用语句调用,如下所述。

call usp_check_user_exist('example@domain.com',@out);

如果不起作用请告诉我。

关于php - 当我使用输出参数调用存储过程时,mysql 中出现错误代码 1414,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45406945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com