gpt4 book ai didi

php - 如何从php存储过程调用以加载嵌套数据

转载 作者:行者123 更新时间:2023-11-30 01:35:30 26 4
gpt4 key购买 nike

使用下一个代码来加载类别和每个类别的项目以构建表格:

$db = new mysqli('localhost', 'root', '123456', 'hdc1');

$categorias = $db->query("call getCategoria(1);");

if ($categorias) { while ($categoria = $categorias->fetch_object()) {

$idcategoria = $categoria->id;

// 2nd Query
if ($items = $db->query("call getItems($idcategoria);")) {
// Cycle through results
echo "<br />query2";

while ($item = $items->fetch_object()) {
echo $item->descripcion;
}

// Free result set
$items->close();
$db->next_result();
}

}
// Free result set
$categorias->close();
//$db->next_result(); } else echo($db->error);

// Close connection $db->close();

第一个查询成功执行并加载类别,但是当我想对每个类别执行第二个查询时,结果集始终为空。

为什么?没有错误页面,没有存储过程错误...为什么项目的结果集为空...

最佳答案

无法使用 mysqli_query() 正确获取从存储过程返回的结果集。 mysqli_query() 函数将语句执行与将第一个结果集获取到缓冲结果集(如果有)结合起来。但是,还有一些对用户隐藏的存储过程结果集,导致 mysqli_query() 无法返回用户期望的结果集。

使用 mysqli_real_query() 或 mysqli_multi_query() 获取从存储过程返回的结果集。这两个函数都允许获取语句返回的任意数量的结果集,例如 CALL

关于php - 如何从php存储过程调用以加载嵌套数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16948027/

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