将 mysql 查询的每一行传递给 php 数组


Passing each row of a mysql query to a php array

>我正在运行一个 MySQL 查询来返回临时数据库中的所有行,然后我需要修改这些行中的一些属性,所以我尝试将每一行返回到数组,以便我可以引用数组并修改每行的特定属性

只是坚持如何将每一行放入自己的数组中,我猜我需要为此使用 2D 数组,但无法弄清楚如何将其从 MySQL 查询填充到 2D 数组中。我猜它类似于我在下面尝试过的东西?

    $result_array = array();
while ($row = mysql_fetch_assoc($res2)) {
 $result_array[] = $var;
foreach($row as $key => $var) {
// Insert into array
echo $var;
}

但是,在尝试此操作时,我收到一条通知,说:

注意:数组到字符串的转换

任何帮助为我指出正确的方向都会很棒

如果我明白你的要求,你真的希望 SQL 查询中的每一行都是 $result_array 数组中的单个索引?

如果是这种情况,您已经通过 $row 获得了它 - 您可以将其直接添加到数组中:

$result_array = array();
while ($row = mysql_fetch_assoc($res2)) {
    $result_array[] = $row;
}

您可以在将数组中的值添加到全局数组时修改这些值,也可以在以下之后修改这些值:

foreach ($result_array as $index => $row) {
    $result_array[$index]['some_key'] = $row['some_key'] . ' [modified]';
}

旁注(不具体回答)
我建议不要使用旧的、已弃用的mysql_函数,而是支持MySQLi或PDO。这两种方法都易于使用,比旧方法更安全,并提供大量功能,例如预准备语句。

以上可以用mysqli写,比如:

if ($result = mysqli_query($connection, $query)) {
    $results = array();
    while ($row = mysqli_fetch_assoc($result)) {
        $results = $row;
    }
    mysqli_free_result($result);
}