PHPPDO循环sql结果只显示最后一个结果

brccelvz  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(293)

亲爱的,
我正在尝试将所有sql结果提取到assoc数组中,然后提取到json中,但我不知道为什么我只获取最后一行sql。

<?php
require_once "Xsecure/access.php";

        $Arry = array(); 
        $json = array();

        $access = new DatabaseAccess();
        $sql = $access->Connect();
        $stmt = $sql->prepare("select mid from players");
        $stmt->execute();
        $rowCount = $stmt->rowCount();  

        $Arry = $result;

    while ($result = $stmt->fetchAll(PDO::FETCH_ASSOC) ){
        $Arry = $result;
    }
        // for array data access
        foreach($Arry as $row){
          $json["mid"] = $row["mid"];
        };

        // 3. Disconnect db connection
        $sql = $access->Disconnect();

        // 4. Return json output
        echo json_encode($json, JSON_UNESCAPED_SLASHES);

?>

结果输出为:

{
"mid": "10"
}

它应该介于1到10之间,而不仅仅是最后一行。我怎样才能做到这一点?我错过了什么?
注意:稍后,我想向数组中添加额外的键-值对,这些键-值对不是从mysql数据库派生的,因此我必须使用assoc数组。
提前谢谢,

7kqas0il

7kqas0il1#

...
$stmt->execute();
$rowCount = $stmt->rowCount();
$Arry = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($Arry as $row){
   $json[]["mid"] = $row["mid"];
};
...

或者只是

...
$stmt->execute();
$rowCount = $stmt->rowCount();
$json = $stmt->fetchAll(PDO::FETCH_ASSOC);
...

相关问题