使用 PDO 调用存储过程时如何修复'OUT 或 INOUT 参数...不是变量”错误?

Susan Sarandon
发布: 2024-11-07 05:21:03
原创
207 人浏览过

How to Fix

使用 PDO 调用带有 Out 参数的存储过程:已解决的 Bug

尽管遵循 PDO 手册,您可能会遇到“OUT 或 INOUT 参数” ...不是变量”调用带有输出参数的存储过程时出现错误。这可能是由于早期版本的 PHP 和 MySQL 中的错误造成的。

要解决此问题,请实施以下解决方法:

  1. 在存储过程中,添加 输出参数的 SELECT 语句。例如:
DELIMITER //  
CREATE PROCEDURE `proc_OUT` (OUT var1 VARCHAR(100))  
BEGIN  
    SET var1 = 'This is a test';  
    SELECT var1;  -- Select added to retrieve the output parameter
END //  
登录后复制
  1. 在您的 PHP 代码中,使用普通的 PDO execute() 方法来调用存储过程,而不绑定输出参数:
$stmt = $db->prepare("CALL proc_OUT(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000);
$stmt->execute();
登录后复制
  1. 执行存储过程后,使用单独的 query() 调用检索输出参数:
$result = $db->query("SELECT var1 FROM proc_OUT");
foreach ($result as $row) {
    echo $row['var1'];
}
登录后复制

以上是使用 PDO 调用存储过程时如何修复'OUT 或 INOUT 参数...不是变量”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!