【发布时间】:2017-11-04 15:20:51
【问题描述】:
数据库(命名为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?
【问题讨论】:
-
mysqli_fetch_array在未指定时返回 2 行类型,告诉它只返回关联。 -
我不确定您如何从提供的示例中获得
11223344或1111222233334444的任何输出。该代码与您所说的不匹配(?) -
@Randall 哎呀,它应该回显
$row['ID']'. Then It will output the11223344. Apparently this is from having awhile` 和foreach。 -
啊,好吧,这更有意义! :)
-
@Jeff 是因为没有定义返回所以它做了
MYSQLI_BOTH,使用MYSQLI_ASSOC。 php.net/manual/en/mysqli-result.fetch-array.php
标签: php mysqli foreach while-loop