一千萬個為什麽

搜索

如何返回整個mysql結果集,並且一次將每行設置為數組?


foreach($scraperSites as $site) {

    //$scraperWriter->addSite( new ScraperSite($site) );
    print_r($site);

}

scraperSites是mySQL數據庫中所有站點的數組;我正在嘗試將$ site保留為數組(但只有一行數據),將其添加到對象,然後繼續下一行。

最佳答案

查看代碼後,我認為這是您的問題:

public static function getScrapedSites($db) {

    $query = "select * from sites";
    $result = $db->query($query);
    $scrapedSites = $result->fetch_assoc();

    return $scrapedSites;

}

我相信這將總是返回一行。您需要使用 fetch_assoc()循環結果並將結果附加到數組。

public static function getScrapedSites($db) {

    $query = "select * from sites";
    $result = $db->query($query);

    $scrapedSites = array();

    foreach($result->fetch_assoc() as $site) {
      $scrapedSites[] = $site;
    }

    return $scrapedSites;
}

您說 $ site 在您的示例中輸出了一個字符串。這是因為您的 foreach 循環正在叠代關聯數組中的db字段。

轉載註明原文: 如何返回整個mysql結果集,並且一次將每行設置為數組?

猜你喜歡