这就是我如何使用MySQLi:获得一条记录
$result = $db->query("...");
$image = $result->fetch_object();
现在我需要获得评论并将其传递给视图。我现在正在使用以下片段,但它似乎不对:
$result = $db->query("...");
while ($row = $result->fetch_object())
$comments[] = $row;
我想知道是否有办法去除循环?有没有类似的东西:
$image = $result->fetch_object(((s)))
所以我的代码看起来像:
$result = $db->query("...");
$comments = $result->fetch_objects();
mysqli_result类提供了一个fetch_all方法来收集完整的结果集。但是,该方法将只返回关联数组或数值数组(或混合数组),而不返回对象。
使用mysqli_fetch_all()
无法获得对象数组。可用的选项有:索引数组、关联数组或两者兼有。
考虑使用PHP数据对象(PDO)接口,它有更多的获取模式,因此在这方面优于MySQLi。
如果没有看到您的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);