在OOP MySQLi中获取没有循环的所有对象

oaz*_*ziz 5 php mysql mysqli

这就是我用MySQLi获取一条记录的方法:

$result = $db->query("...");
$image = $result->fetch_object();
Run Code Online (Sandbox Code Playgroud)

现在我需要获取注释并将其传递给视图.我现在正在这样做,但似乎不对:

$result = $db->query("...");

while ($row = $result->fetch_object())
    $comments[] = $row;
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法删除循环?有点像$ image = $ result-> fetch_object(((s))),所以我的代码看起来像:

$result = $db->query("...");
$comments = $result->fetch_objects();
Run Code Online (Sandbox Code Playgroud)

pil*_*row 5

是的。mysqli_result 类提供了一个fetch_all方法来做到这一点。但是,该方法将只返回关联或数字数组(或混合),而不是对象。


Kyl*_*and -1

没有看到你的 SQL,很难说。您可能可以使用更好的查询。把你的SQL贴出来,我再看一下。

就 SQL 查询而言,如果您的查询返回多行,那么您已经通过一次数据库调用获取了它们。

我没有找到将所有注释收集到数组中的方法,但您可以使用自定义函数清理代码。

function get_all_rows_as_array(&$result)
{
    foreach($result as mysql_fetch_assoc($result))
    {
        $array[] = $row;
    }

    return $array;
}

$result = $db->query("...");
$comments = get_all_rows_as_array($result);
Run Code Online (Sandbox Code Playgroud)