库MySQLi仅示出一个结果(MySQLi only showing one result)

2019-10-21 12:59发布

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

Answer 1:

尝试while循环:

while($row = $sql->fetch_row())
{
   var_dump($row);
}

由于fetch_row() fetch_array() fetch_assoc()将全部回报每一位烧毛时它被称为直到它“出列”一行。



Answer 2:

你将不得不遍历结果。 您可以随时使用这样的事情:

$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行同时



Answer 3:

尝试这个:

$sql = $db->query('SELECT * FROM '.$db_prefix.'_posts');
$rows= $sql->fetch_row();

while ($row = $rows->fetch_row()) {
  echo $row[0]." ".$row[1];
}


文章来源: MySQLi only showing one result
标签: php mysql mysqli