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

标签 php mysql arrays object

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/

相关文章:

php - 连接 2 个表 X 和 Y 以显示 Total sum() 结果事件表 Y 为空

php - Behat:Goutte/Guzzle 通过 cURL "Warning: curl_setopt_array(): 3607 is not a valid File-Handle resource"下载文件

php - "Weekly Top 10"数据库设计问题

c - 指针和数组的奇怪行为

Java double[][] 到 double[] 无需复制

来自 Windows 的 PHP 文件在 Ubuntu 中不起作用

php - 如何使用dql查询doctrince 2中的sum?

php - SQL 多重连接 SELECT 查询

mysql - SQL 查询语句中包含 drop 或 null

javascript - 在多维中对两个值进行排序