如何返回整个mysql结果集,并且一次将每行设置为数组?

时间:2010-04-18 17:35:21

标签: php mysql arrays object

foreach($scraperSites as $site) {

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

}

scraperSites是mySQL数据库中所有站点的数组;我正在尝试将$ site保留为数组(但只有一行数据),将其添加到对象中,然后转到下一行。

1 个答案:

答案 0 :(得分:1)

在查看您的代码后,我认为这是您的问题:

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字段。