我有一个简单的问题,我的MySQLi函数只在var_dump中显示一行/结果:
$sql = $db->query('SELECT * FROM '.$db_prefix.'_posts');
$row = $sql->fetch_array();
var_dump($row);
那就是它。 phpMyAdmin中的查询显示3个结果。这个只有1.它也不适用于fetch_assoc()或fetch_array()。
编辑:另外,我希望将表格的键列为" fetch_array()"。
答案 0 :(得分:2)
尝试一下while循环:
while($row = $sql->fetch_row())
{
var_dump($row);
}
由于fetch_row()
,fetch_array()
,fetch_assoc()
会在每个单一时间返回一行,因此它会被调用,直到排除行数为止。
答案 1 :(得分:0)
您必须迭代结果。 你总是可以使用这样的东西:
$sql = 'SELECT * FROM '.$db_prefix.'_posts';
if ($result = $mysqli->query($sql)) {
while($obj = $result->fetch_object()){
var_dump($obj);
}
}
然而,这将输出大量数据(因为var_dump)。 要获得干净的输出,您可以使用
$sql = 'SELECT * FROM '.$db_prefix.'_posts';
if ($result = $mysqli->query($sql)) {
while($obj = $result->fetch_object()){
echo $obj->*sql_columnname_here*; // Repeat for all columns
}
}
fetch_row()一次只包含1行
答案 2 :(得分:0)
试试这个:
$sql = $db->query('SELECT * FROM '.$db_prefix.'_posts');
$rows= $sql->fetch_row();
while ($row = $rows->fetch_row()) {
echo $row[0]." ".$row[1];
}