MySQLi 只显示一个结果

MySQLi only showing one result

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

编辑:另外,我想将 table 的键列为 "fetch_array()"。

尝试 while 循环:

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

因为 fetch_row()fetch_array()fetch_assoc() 每次被调用时都会 return 一行,直到 'out of rows'。

您将不得不迭代您的结果。 你总是可以使用这样的东西:

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

试试这个:

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

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