PHP中的array_push似乎进入了无限循环



我是PHP新手。我正在尝试用这段PHP代码阅读MySQL。

....
$sql = "select * from GameMaster where UserId = '".$_POST["UserId"]."'";
$result = mysqli_query($link, $sql);
$rows = array();
$return = array();
while($row = mysqli_fetch_array($result)) {

$rows['UserId'] = $row['UserId'];
$rows['Nick'] = $row['Nick'];
$rows['Items'] = $row['Items'];
$rows['Skills'] = $row['Skills'];
...
$rows['LastUpdate'] = $row['LastUpdate'];
array_push($return, $rows);
}
header("Content-type:application/json");
echo json_encode($return);

运行完这段代码后不久,它就进入了无限循环。当我删除array_push行时,它并没有进入无限循环。所以我想这就是问题所在,但我不知道为什么。

我的代码有问题吗?MySQL数据库位于Amazon lightsail中。

请帮帮我。提前谢谢你的意见。

如果您想从数据库中获取所有行,并获取特定字段的数据数组

<?php 
$sql = "select * from GameMaster where UserId = '".$_POST["UserId"]."'";
$result = mysqli_query($link, $sql);
$filtered = [];
while($row = mysqli_fetch_all($result)) {
$filtered[] = [
'UserId'    => $row['UserId'],
'Nick'    => $row['Nick'],
'Items'    => $row['Items'],
'Items'    => $row['Items'],
'Skills'    => $row['Skills'],
'Items'    => $row['Items'],
'LastUpdate'    => $row['LastUpdate'],
];
}
header("Content-type:application/json");
echo json_encode($filtered);

对于数据库信息的每个记录,您都要将新数据输入行阵列

while($row = mysqli_fetch_array($result)) {
// Logic of you application here
array_push($return, $row);
}

这会将提取的行推入行阵列

如果您不修改数据库获取的信息,该怎么办。您可以将信息作为关联数组获取,并简单地将其存储在变量中。将不需要循环并存储在新的阵列中

$sql = "select * from GameMaster where UserId = '".$_POST["UserId"]."'";
$result = mysqli_query($link, $sql);
$rows = mysqli_fetch_all($result, MYSQLI_ASSOC);
header("Content-type:application/json");
echo json_encode($rows);

最新更新