如何解决PHP 多个行集返回 json_encode
我正在使用 PDO 从具有多个选择语句的 MysqL 存储过程返回多个行集。目前我的循环代码如下所示。问题是 PHP 数组函数没有正确创建数组,只是分配给 json_encode 也不起作用。
$stmt->execute();
$values = array();
do {
$row = $stmt->fetchAll(PDO::FETCH_NUM);
foreach ($row as $rowvalue) {
$values = array($rowvalue);
}
echo json_encode($values);
} while($stmt->nextRowset());
以上语句的输出为
[["52","1","2","3","4","MTD"]][["2561","2069","2532","2818","2362","9781"]][["16","10","55","41","24","130"]][["8","33","30","83","96","242"]][["60","47","61","58","213","379"]][["44","42","29","89","131","291"]]
当我将其传递回 ajax 并执行 jQuery.parseJSON 时,它显然失败了。我尝试在循环中的 $values 变量周围添加方括号,但这只会复制所有内容。
我也试过用 json_encode 代替 values 变量,然后给我相同的精确输出减去一组方括号。似乎没有正确添加维度,但我的 PHP 不是那么强大。
任何指导将不胜感激。我很抱歉,但我没有看到与已经存在的建议答案的关系。我的情况不同,我同意应该在最后使用 json 但是当我这样做时它返回一个空值。
我已经修改了我的脚本,这样 json 就在最后,我正在填充 values 数组。但是,这会引发 500 错误。
$stmt->execute();
do {
$row = $stmt->fetchAll(PDO::FETCH_NUM);
$values = array();
foreach ($row as $rowvalue) {
$values[] = array($rowvalue[0]);
}
} while($stmt->nextRowset());
echo json_encode($values);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。