Php 将查询移动到MySQLi

Php 将查询移动到MySQLi,php,mysql,Php,Mysql,我正在更新一些不推荐使用MySQL函数的旧代码。但由于某些原因,我无法从专栏中获得所有结果。奇怪的是,如果我直接在服务器上运行查询,我会得到所有的结果。因此,这是PHP获取结果的问题,而不是MySQL服务器或我的查询 以下是新旧代码: 我当前更新的代码: $sql = "SELECT user, monitor FROM users WHERE `status` = 'y'"; $result = $conn->query($sql); if ($result->num_rows

我正在更新一些不推荐使用MySQL函数的旧代码。但由于某些原因,我无法从专栏中获得所有结果。奇怪的是,如果我直接在服务器上运行查询,我会得到所有的结果。因此,这是PHP获取结果的问题,而不是MySQL服务器或我的查询

以下是新旧代码:

我当前更新的代码:

$sql = "SELECT user, monitor FROM users WHERE `status` = 'y'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {

// This works. It shows all results
echo $row["user"];

// This does not work! Only shows one result:
$account= $row["user"];

    }
 else {
    echo 'No results';
}
当我直接在DB服务器上使用该查询时,我会得到所有结果。因此,SQL查询是正确的。如果我直接回显行,我实际上也会在PHP中获得所有结果,如:

echo $row["user"];
但由于某些原因,当我尝试将它与带有变量的PHP一起使用时,它只列出一个用户结果

过去我使用过这个函数,但现在不推荐使用mysql\u fetch\u array函数

while ($row = mysql_fetch_array($result)) {
array_push($data, $row["user"]);
}

foreach($data as $value) {
$account = $value
}
我不能再使用以前的代码了,因为那些MySQL函数现在已经过时了。我需要将结果写入一个文件,我的旧方法运行良好。使用mysqli的新版本没有


有什么建议吗?

您只需添加其中一个
[
,以及其中一个
]

$account[] = $row["user"];
//      ^^ right here.
$account=$row[“user”]
表示每次循环执行时,您都将
$row[“user”]
的值存储在
$account
$account
是一个字符串,它每次都会获得一个新值

$account[]=$row[“user”]
表示您将
$row[“user”]
的每个值追加到数组中


您不应该为此使用
array\u push
。在数组中附加一个值太过分了。如果事先没有定义数组,它就根本无法工作。

您也使用了mysqli_uuu来连接,对吗?我看不到您发布的内容失败。您正在覆盖每个循环中的
$account
。您希望发生什么?那么,您在($row=mysqli\u fetch\u array($result))时没有执行
?还有,把
foreach
?@JeanPaul98我知道,哈哈你为什么这么说?不起作用的是重写变量。这不是火箭科学,我想这是问题所在。我正在覆盖变量中的结果。为什么我总是只得到最后一个结果。你能解释一下如何得到所有的结果吗?我尝试了你的代码,但我得到的只是数组,没有更多的结果。过去我发布的旧代码对我来说效果很好,但是我不能用新的mysqliYou看到的“Array”实现这一点,因为你不能直接回显数组。您需要使用foreach对其进行迭代并回显其中的每个值,或者使用类似于
echo introde(',',$account)
的方法首先将其转换为字符串。谢谢。这似乎就是问题所在。奇怪,因为我以前在旧代码中没有这样做。再次感谢!