>我正在运行一个 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);
}