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字段上进行迭代。

09-25 19:25