MySQLi只显示一个结果

时间:2015-01-06 15:16:54

标签: php mysql mysqli

我有一个简单的问题,我的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()"。

3 个答案:

答案 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];
}