将 php mysql 结果转换为数组


Converting php mysql results into an array

我有这个功能:

    public function get_all_sites($niche){
    $query="SELECT * 
           FROM sites AS site
           INNER JOIN niche AS n ON n.niche_id=site.niche_id
           INNER JOIN review AS r ON r.site_id=site.site_id
           WHERE n.niche_id=".$niche;
    $results=mysql_query($query) or die(mysql_error());
  while($rows[] = mysql_fetch_assoc($results));
    return $rows;
}

我想做的是一次性将所有行转换为关联数组并返回它。由于返回了许多值,我不想使用任何推送函数或编写这样的代码 $new_array['id']=$row['id'];。代码越短越好。

好的,连接错误消失了。如何在不从循环内部获取结果的情况下将所有行作为数组输出mysql_fetch_assoc

错误:

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, 
resource given in C:'Program Files (x86)'Zend'Apache2'htdocs'bestMatch
'sandbox'models'SitesDB.php on line 19

意味着您的 SQL 有问题或服务器无法执行它。我建议您将其回显出来,并确保查询可以提供结果。

在这种情况下,您似乎混合了mysql_和mysqli_函数?您是否正在建立mysqli_连接以便能够返回关联的数组?

编辑:

基于此评论"好吧,我急于完成这个网站..所以我会坚持使用 MySQL",尝试为您的函数添加连接?查看示例 1,并确保已涵盖这些步骤。