首页 > 数据库 > mysql教程 > 如何使用 PHP 执行带有输入和输出参数的 MySQL 存储过程?

如何使用 PHP 执行带有输入和输出参数的 MySQL 存储过程?

Patricia Arquette
发布: 2024-11-08 11:25:01
原创
1056 人浏览过

How to Execute MySQL Stored Procedures with Both Input and Output Parameters Using PHP?

使用 PHP 调用同时带有输入和输出参数的 MySQL 存储过程

在 PHP 中,执行需要输入和输出参数的 MySQL 存储过程可能是一个挑战。虽然 MySQLi 提供了单独处理输入和输出参数的特定函数,但没有直接支持这种情况。

为了克服此限制,需要涉及 MySQL 用户变量的解决方法。下面详细介绍了它的工作原理:

使用 MySQLi 过程接口:

$procInput1 = 123;
$procInput2 = 456;
$procInput3 = 789;

$mysqli = mysqli_connect('host', 'user', 'password', 'database');

$call = mysqli_prepare($mysqli, 'CALL test_proc(?, ?, ?, @sum, @product, @average)');
mysqli_stmt_bind_param($call, 'iii', $procInput1, $procInput2, $procInput3);
mysqli_stmt_execute($call);

$select = mysqli_query($mysqli, 'SELECT @sum, @product, @average');
$result = mysqli_fetch_assoc($select);
$procOutput_sum = $result['@sum'];
$procOutput_product = $result['@product'];
$procOutput_average = $result['@average'];
登录后复制

这里,我们首先初始化输入变量并建立与 MySQL 数据库的连接。准备好的语句用于执行存储过程,并绑定输入参数。执行后,将使用单独的查询来检索存储在 MySQL 用户变量中的输出参数。

使用 MySQLi 面向对象接口:

$procInput1 = 123;
$procInput2 = 456;
$procInput3 = 789;

$mysqli = new mysqli('host', 'user', 'password', 'database');

$call = $mysqli->prepare('CALL test_proc(?, ?, ?, @sum, @product, @average)');
$call->bind_param('iii', $procInput1, $procInput2, $procInput3);
$call->execute();

$select = $mysqli->query('SELECT @sum, @product, @average');
$result = $select->fetch_assoc();
$procOutput_sum = $result['@sum'];
$procOutput_product = $result['@product'];
$procOutput_average = $result['@average'];
登录后复制

此代码演示使用面向对象接口的相同方法,其中数据库连接和存储过程执行是通过对象方法处理的。

通过利用 MySQL 用户变量的解决方法,您可以有效地执行带有输入和输出参数的存储过程在 PHP 中使用 MySQLi 接口。

以上是如何使用 PHP 执行带有输入和输出参数的 MySQL 存储过程?的详细内容。更多信息请关注PHP中文网其他相关文章!

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