【问题标题】:MySQLi only showing one result [duplicate]MySQLi仅显示一个结果[重复]
【发布时间】:2015-01-06 15:16:53
【问题描述】:

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

【问题讨论】:

标签: php mysql mysqli


【解决方案1】:

尝试一个while循环:

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

因为fetch_row()fetch_array()fetch_assoc() 每次调用都会返回一行,直到它“超出行数”。

【讨论】:

    【解决方案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 行

    【讨论】:

      【解决方案3】:

      试试这个:

      $sql = $db->query('SELECT * FROM '.$db_prefix.'_posts');
      $rows= $sql->fetch_row();
      
      while ($row = $rows->fetch_row()) {
        echo $row[0]." ".$row[1];
      }
      

      【讨论】:

        猜你喜欢
        • 2014-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-02
        • 1970-01-01
        • 2012-08-15
        • 2018-11-02
        • 1970-01-01
        相关资源
        最近更新 更多