遇到已知Bug时如何使用PDO调用带输出参数的存储过程?

Linda Hamilton
发布: 2024-11-07 15:53:03
原创
733 人浏览过

How to Call Stored Procedures with Output Parameters Using PDO When Encountering a Known Bug?

使用 PDO 调用带输出参数的存储过程

尝试使用 PDO 执行带输出参数的存储过程时,必须考虑一个已知的错误。尽管直接从 MySQL 调用时该过程按预期工作,但此错误可能会导致以下错误:

“SQLSTATE[42000]:语法错误或访问冲突:例程 mydb.proc_OUT 的 1414 OUT 或 INOUT 参数 1在 BEFORE 触发器中不是变量或 NEW 伪变量”

要解决此问题,建议使用以下方法执行存储过程:

  1. 调用存储过程并选择输出参数:
$dbh->query("CALL SomeStoredProcedure($someInParameter1, $someInParameter2, @someOutParameter)");
$dbh->query("SELECT @someOutParameter");
登录后复制
  1. 准备语句并选择输出参数:
$stmt = $dbh->prepare("CALL SomeStoredProcedure(?, ?)");
$stmt->execute(array($someInParameter1, $someInParameter2));
登录后复制

通过遵循这种方法,即使存在上述错误,您也可以使用 PDO 有效地调用带有输出参数的存储过程。

以上是遇到已知Bug时如何使用PDO调用带输出参数的存储过程?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板