首页 > 解决方案 > PDO::FETCH_GROUP 为每一行返回重复值,为什么?

问题描述

我正在尝试使用 fetchAll(PDO::FETCH_GROUP) 来获取数据库中的每一行并按产品类型拆分它们。但是,在运行它时,我得到了重复的结果?因此,例如,而不是得到:

id: "0"
img_url: "products/doors/french.png"
subproduct: "French Doors"

我得到了结果:

0: "0"
1: "French Doors"
2: "products/doors/french.png"
id: "0"
img_url: "products/doors/french.png"
subproduct: "French Doors"

这是非常奇怪的行为,我一生都无法弄清楚为什么会这样?如果我将 Fetch 类型更改为仅抓取特定行,它可以抓取它们,但如果我尝试使用 Fetch_Group,我会得到上述结果。

这是我的代码:

<?php

try {
    $handler = new PDO('mysql:host=127.0.0.1;dbname=allproducts', 'root', '');
    $handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    die("Sorry, database problem");
}

$con = mysqli_connect("localhost", "root", "", "allproducts");
$response = array();
if($handler){
    $response = $handler->query('SELECT product, id, subproduct, img_url from allproducts')->fetchAll(PDO::FETCH_GROUP);

} else {
    echo "Not connected";
}
echo json_encode($response,JSON_PRETTY_PRINT);
?>

标签: phppdo

解决方案


推荐阅读