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
循环正在迭代关联数组中的数据库字段。
关于php - 如何返回整个 mysql 结果集,并且一次一个将每一行设置为一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2663203/