1

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

我只是坚持如何将每一行放入自己的数组中,我猜我需要为此使用二维数组,但是无法弄清楚如何将它从 mysql 查询填充到二维数组中。我猜这就像我在下面尝试过的那样?

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

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

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

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

4

1 回答 1

2

如果我理解您的要求,您真的希望 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_函数,而是支持MySQLiPDO。这两种方法都易于使用,比旧方法更安全,并提供大量功能,例如准备好的语句。

上面可以用mysqli写成:

if ($result = mysqli_query($connection, $query)) {
    $results = array();
    while ($row = mysqli_fetch_assoc($result)) {
        $results = $row;
    }
    mysqli_free_result($result);
}
于 2013-10-15T16:55:06.247 回答