我这里有这个代码:
$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的对象一样?
答案 0 :(得分:0)
如果我是你,我会使用while循环来回显输出数据。
像这样:while($rf = $r -> fetch_assoc())
{
echo $rf['item_name'];
echo $rf['stock_amount'];
}