php pdo 存储过程的返回所有结果,使用php / mysqli中的存储过程检索多个结果集

小编典典

我认为您在这里缺少什么(以下内容尚未经过测试):

$stmt = mysqli_prepare($db, 'CALL multiples(?, ?)');

mysqli_stmt_bind_param($stmt, 'ii', $param1, $param2);

mysqli_stmt_execute($stmt);

// fetch the first result set

$result1 = mysqli_use_result($db);

// you have to read the result set here

while ($row = $result1->fetch_assoc()) {

printf("%d\n", $row['id']);

}

// now we're at the end of our first result set.

mysqli_free_result($result1);

//move to next result set

mysqli_next_result($db);

$result2 = mysqli_use_result($db);

// you have to read the result set here

while ($row = $result2->fetch_assoc()) {

printf("%d\n", $row['id']);

}

// now we're at the end of our second result set.

mysqli_free_result($result2);

// close statement

mysqli_stmt_close($stmt);

使用PDO您的代码如下所示:

$stmt = $db->prepare('CALL multiples(:param1, :param2)');

$stmt->execute(array(':param1' => $param1, ':param2' => $param2));

// read first result set

while ($row = $stmt->fetch()) {

printf("%d\n", $row['id']);

}

$stmt->nextRowset();

// read second result set

while ($row = $stmt->fetch()) {

printf("%d\n", $row['id']);

}

因此,根据您的PHP版本,您必须坚持使用mysqli-solution。顺便说一句:您是否故意使用程序样式?使用面向对象的样式mysqli将使您的代码看起来更具吸引力(我个人认为)。

2020-05-29

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值