pdo调用mysql存储过程_获取out参数值问题_PHP PDO无法获取OUT参数值

我刚开始使用

PHP PDO和MySQL存储过程,我有如何从过程调用中获取OUT参数的问题.我查看了许多类似的stackoverflow主题,但遗憾的是我无法找到解决问题的方法:|

以下是详细信息:

该过程采用1个输入参数,并有2个强制输出参数,并返回结果状态.

这就是我所说的:

$input = 5;

$mydb = new PDO("mysql:host=localhost;dbname=mydb", "user", "pass");

$proc = $mydb->prepare("CALL proc_name($input, @o_code, @o_message)");

$proc->execute();

该过程在@o_code参数中返回INT,在@o_message参数中返回STRING.

如果从CLI调用它,并且在调用之后我在CLI中编写

select @o_code, @o_message;

一切都很好,就是我能够看到这些OUT参数中返回的值.

但是我不能用PHP代码做到这一点 – 出于某种原因我总是得到FALSE结果.该程序正确地完成了它的工作,但我无法得到它的结果.

在我进行上述调用之后,我尝试了以下方法来获取值:

$output = $proc->fetch(PDO::FETCH_ASSOC); // also with PDO:FETCH_OBJ

$output = $mydb->query("select @o_code, @o_message");

$output = $mydb->query("select @o_code, @o_message")->fetch();

$output = $mydb->query("select @o_code, @o_message")->fetchColumn();

$output = $mydb->query("select @o_code, @o_message")->fetchAll();

但是这些都不会返回任何与NULL或FALSE不同的结果.我也试过bindParam,但仍然无法使其工作.

感谢您在这个问题上的任何帮助和美好的一天!

—–编辑—–

这是我尝试使用bindParam的代码,它仍然不起作用:

$input = 5;

$proc = $mydb->prepare("CALL proc_name(?, ?, ?)");

$proc->bindParam(1, $input, PDO::PARAM_INT);

$proc->bindParam(2, $code, PDO::PARAM_INT);

$proc->bindParam(3, $message, PDO::PARAM_STR);

$proc->execute();

var_dump($code, $message); // NULL, NULL

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值