繁体   English   中英

将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_函数,而建议使用MySQLiPDO 这两种方法都易于使用,比旧方法更安全,并提供了很多功能,例如预准备语句。

上面可以用mysqli编写,例如:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM