Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQli返回双重结果_Php_Mysqli - Fatal编程技术网

Php MySQli返回双重结果

Php MySQli返回双重结果,php,mysqli,Php,Mysqli,我在使用mySQli和php方面还是很新的,目前我正在使用一个简单的mySQli查询 $datas = $mysqli->query("SELECT firstname FROM Customer"); while($row = mysqli_fetch_array($datas)) { print_r($row); } 但是返回的结果是双倍的,这正常吗 Array ( [0] => Vincent [firstname] => Vincent ) Arra

我在使用mySQli和php方面还是很新的,目前我正在使用一个简单的mySQli查询

$datas = $mysqli->query("SELECT firstname FROM Customer");
    while($row = mysqli_fetch_array($datas)) {
    print_r($row);
}
但是返回的结果是双倍的,这正常吗

 Array
(
[0] => Vincent
[firstname] => Vincent
)
Array
(
[0] => Carmen
[firstname] => Carmen
)
Array
(
[0] => James
[firstname] => James
)
Array
(
[0] => William
[firstname] => William
)

结果不是“双重的”。您从数据库中获得4条记录,但print\u r打印这些记录的方式看起来有点像“double”。您可以执行以下操作以显示第1/0列:

print_r($row[0]);
或使用此选项打印列“firstname”:

print_r($row['firstname']);
这显然是相同的

更新

如果要在所有列中循环,可以在循环时在内部执行以下操作:


你不会得到两倍的记录。得到的数据相同,但同时作为关联数组和数值数组得到。这是因为您使用了,默认情况下,它返回一个数组,该数组通过数字键和SELECT中DB列的名称进行索引。 要获得关联数组的结果,请仅使用以下选项之一:

while ($row = mysqli_fetch_array($datas, MYSQLI_ASSOC)) {
    print_r($row);
}
// or
while ($row = mysqli_fetch_assoc($datas)) {
    print_r($row);
}
// or
foreach ($datas as $row) {
    print_r($row);
}
while ($row = mysqli_fetch_array($datas, MYSQLI_NUM)) {
    print_r($row);
}
// or
while ($row = mysqli_fetch_row($datas)) {
    print_r($row);
}
要获得数值数组的结果,请仅使用以下选项之一:

while ($row = mysqli_fetch_array($datas, MYSQLI_ASSOC)) {
    print_r($row);
}
// or
while ($row = mysqli_fetch_assoc($datas)) {
    print_r($row);
}
// or
foreach ($datas as $row) {
    print_r($row);
}
while ($row = mysqli_fetch_array($datas, MYSQLI_NUM)) {
    print_r($row);
}
// or
while ($row = mysqli_fetch_row($datas)) {
    print_r($row);
}

谢谢,如果我从客户处选择*怎么办?我是否可以打印出所有行而不必重复打印,或者我必须使用其他内容而不是打印?通常,您应该只选择实际需要的列,而不使用*。但是,如果您真的想要所有这些,您可以创建一个从0到行中列数的小for循环,并将计数器用作列索引。谢谢,这很有帮助我添加了一个循环的基本示例