gpt4 book ai didi

php pdo只返回一个结果集

转载 作者:行者123 更新时间:2023-11-29 22:01:34 25 4
gpt4 key购买 nike

我是 php 新手。我正在调用在 MYSQL 中返回多个结果集的存储过程。

我似乎无法让 PHP PDO 获取第二个结果集。我只得到第一个。感谢任何帮助

--更多信息

存储过程只是像这样选择语句

select * from Product where productId = id;
select url from Images where product_id = id;

PHP 代码:

 $conn = new PDO('mysql:host=localhost;dbname=salamancju_HardGraft', $this->userName, $this->password);

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);

$stmt = $conn -> prepare('call GetProductById(:id)');
$stmt->execute( array(':id' => $id));

$results = array();

do {
$results = $results + $stmt->fetchAll(PDO::FETCH_NUM);

} while ($stmt->nextRowset());

echo json_encode($results);

最佳答案

您的问题与存储过程无关。数组上的 + 运算符的工作方式与您想象的不同。使用 [] 代替:

    do {
$results[] = $stmt->fetchAll(PDO::FETCH_NUM);

} while ($stmt->nextRowset());

将产生一个嵌套数组。如果您想要其他格式,请提供示例。

除了这个问题,你的代码是完美的。大多数对 PHP 不陌生的人永远无法做到这一点。

关于php pdo只返回一个结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32598394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com