Php MySQli返回双重结果
我在使用mySQli和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
$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循环,并将计数器用作列索引。谢谢,这很有帮助我添加了一个循环的基本示例