PHP MYSQLi使用foreach循环遍历结果集

时间:2017-03-28 19:25:48

标签: php arrays mysqli

我这里有这个代码:

$conn = new mysqli("localhost", "root", "pass", "branchdatabase");

$result = $conn->query("SELECT item.item_name, stock.stock_amount FROM item INNER JOIN stock ON item.item_id=stock.fk_item_id");

var_dump($result);

foreach($result as $r)
{
  echo $r["item_name"];
}

哪个有效,但echo $r["item_name"];的行不应该有效,但是当我使用var_dump输出$ result时它会返回一个mysqli对象,所以如何在foreach循环中对此进行索引输出数据?当$ result作为对象而不是数组返回时,我对echo $r["item_name"];如何工作感到困惑?

更新

在$ result上执行var_dump之后我得到了这个:

object(mysqli_result)[28]
  public 'current_field' => int 0
  public 'field_count' => int 2
  public 'lengths' => null
  public 'num_rows' => int 5
  public 'type' => int 0

对我来说,这是一个被返回的对象,那么为什么我可以使用foreach循环来循环遍历数据,就像$ result的对象一样?

1 个答案:

答案 0 :(得分:0)

如果我是你,我会使用while循环来回显输出数据。

像这样:

while($rf = $r -> fetch_assoc())
{
     echo $rf['item_name'];
     echo $rf['stock_amount'];
}