Php 函数仅返回带有mysqli查询结果的第一个数组值
我的mysqli相关函数有一个小问题。代码如下:Php 函数仅返回带有mysqli查询结果的第一个数组值,php,arrays,function,mysqli,return,Php,Arrays,Function,Mysqli,Return,我的mysqli相关函数有一个小问题。代码如下: $query = "SELECT * FROM uploads"; if ($result = $mysqli->query($query)) { while ($row = $result->fetch_assoc()) { return $row; } 问题是,当我使用此函数时,$row似乎是一个数组,但其中只有来自查询结果的第一个值。 但如果我尝试返回var\u dump($row),函数将按预期显示数组
$query = "SELECT * FROM uploads";
if ($result = $mysqli->query($query)) {
while ($row = $result->fetch_assoc()) {
return $row;
}
问题是,当我使用此函数时,$row
似乎是一个数组,但其中只有来自查询结果的第一个值。
但如果我尝试返回var\u dump($row)
,函数将按预期显示数组,并显示查询结果中的所有值。
请您解释一下为什么会发生这种情况,以及如何正确返回包含完整查询结果的数组。
谢谢 改变这一点:
while ($row = $result->fetch_assoc()) {
return $row;
}
用于:
调用测试函数
$bbb=test();
foreach($bbb as $key){
$dbTableColumn1 = $key['column1'];
$dbTableColumn2 = $key['column2'];
$dbTableColumn3 = $key['column3'];
//...$variable = $key['ColumnOfYourTable'];
$text .= $dbTableColumn1.'|'.$dbTableColumn2.'|'.$dbTableColumn3.'<br/>';
//Whatever you want to output
}
$bbb=test();
foreach($bbb作为$key){
$dbTableColumn1=$key['column1'];
$dbTableColumn2=$key['column2'];
$dbTableColumn3=$key['column3'];
//…$variable=$key['ColumnOfYourTable'];
$text.=$dbTableColumn1.'|'。$dbTableColumn2.'|'。$dbTableColumn3.
;
//不管你想输出什么
}
该函数仅用于提高可读性这样的函数不应返回格式化数据。必须返回嵌套数组instead@YourCommonSense对不起,伙计,这取决于你想打印什么,如果你在返回数组时在数组外说return$row,这取决于你想打印什么。但问题是,有很多不同的打印格式。这是一种打印设备,而不是数据处理设备。请学习MVC。然后@YourCommonSense为了更好地理解你所说的,你可以给我一个例子(url)在得到嵌套数组后如何操作数据。为了学习如何使用正确的方法…谢谢。我会使用嵌套foreach。什么让你的答案更好?您只是返回一个object,应该返回什么?至少可以说,这很奇怪,首先序列化一个数组,然后立即反序列化它。在需要从数据库获取大量数据之后,这种方式似乎是最好的选择。
$data = array();
$query = "SELECT * FROM uploads";
if ($result = $mysqli->query($query)) {
while ($row = $result->fetch_assoc()) {
$data[] = $row;
}
}
return $data;
$data = array();
$query = "SELECT * FROM uploads";
if ($result = $mysqli->query($query)) {
while ($row = $result->fetch_assoc()) {
$data[] = $row;
}
}
return $data;