为什么SQL / PHP输出会使信息翻倍?

时间:2017-11-04 15:20:51

标签: php mysqli foreach while-loop

数据库(名为countries):

ID         NAME              ISO         TAG
----------------------------------------------------------------------
1          Netherlands       NL          Dutch
2          Germany           DE          Deutsch
3          Poland            PL          Polski
4          Rusia             RU          Ruski

PHP 7和mysqli代码:

$conn = mysqli_connect('localhost', 'root', '', 'test');
$key = "SELECT ID FROM countries";
$result = mysqli_query($conn, $key);
while ($row = mysqli_fetch_array($result)) {
   foreach ($row as $key) {
      echo $row['name'];
      echo '<br>';
    }
 }

这将输出11223344。将SQL代码更改为$key = "SELECT ID, NAME FROM countries";时,输出将为1111222233334444(第一个的两倍)。为什么输出加倍,为什么当我添加额外的行时,它会加倍ID?

1 个答案:

答案 0 :(得分:0)

mysqli_fetch_array()使用$row[0]等数字键获取数据。

mysqli_fetch_assoc()用于$row['name']等命名密钥,并移除迭代它们的foreach()

while ($row = mysqli_fetch_assoc($result)) {
    echo $row['name'];
    echo '<br>';
}
相关问题