【问题标题】:Get all objects without loop in OOP MySQLi在OOP MySQLi中获取所有没有循环的对象
【发布时间】:2012-01-06 08:43:39
【问题描述】:

这就是我使用 MySQLi 获得一条记录的方式:

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

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

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

while ($row = $result->fetch_object())
    $comments[] = $row;

我想知道是否有办法消除循环?有 $image = $result->fetch_object(((s))) 之类的东西,所以我的代码如下所示:

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

【问题讨论】:

    标签: php mysql mysqli


    【解决方案1】:

    是的。 mysqli_result 类提供了一个fetch_all 方法来执行此操作。但是,该方法只会返回关联数组或数值数组(或混合数组),而不是对象。

    【讨论】:

      【解决方案2】:

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

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

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

      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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-18
        • 2014-08-17
        • 1970-01-01
        • 2018-01-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多