使用 PDO 调用带输出参数的存储过程
尝试使用 PDO 执行带输出参数的存储过程时,必须考虑一个已知的错误。尽管直接从 MySQL 调用时该过程按预期工作,但此错误可能会导致以下错误:
“SQLSTATE[42000]:语法错误或访问冲突:例程 mydb.proc_OUT 的 1414 OUT 或 INOUT 参数 1在 BEFORE 触发器中不是变量或 NEW 伪变量”
要解决此问题,建议使用以下方法执行存储过程:
$dbh->query("CALL SomeStoredProcedure($someInParameter1, $someInParameter2, @someOutParameter)"); $dbh->query("SELECT @someOutParameter");
$stmt = $dbh->prepare("CALL SomeStoredProcedure(?, ?)"); $stmt->execute(array($someInParameter1, $someInParameter2));
通过遵循这种方法,即使存在上述错误,您也可以使用 PDO 有效地调用带有输出参数的存储过程。
以上是遇到已知Bug时如何使用PDO调用带输出参数的存储过程?的详细内容。更多信息请关注PHP中文网其他相关文章!