0

尝试在我的 DAO 中将数据库结果集作为数组返回:

$retval我想在下面的代码中将字符串键值附加到数组中。但是,数组在每次迭代时都会被覆盖,而不是被附加到。

所以在循环结束时,我最终得到 1 个键值而不是 n 对(从数据库中检索到 n 行)。我究竟做错了什么?

$retval = array();
while ($row = mysql_fetch_assoc($result)) {

    foreach($columns as $var) {
        $retval[$var]=$row[$var];
    }

}
var_dump($retval);

$retval最终["name"=>"Japan","capital"=>"Tokyo"]不是预期的["name"=>"Korea","capital"=>"Seoul"...."Japan"=>"Tokyo"]列是名称和大写。

4

2 回答 2

2

我必须看看你的专栏是什么,但不应该是:

$retval = array();
while ($row = mysql_fetch_assoc($result)) {

  $retval[ $row['country'] ] = $row['capital'];

}
于 2012-05-18T01:37:56.897 回答
0

这是因为您正在覆盖相同的值(此处为列名。)类似于:

$retval['a'] = 1;
$retval['a'] = 2;
// ...

而是使用:

$retval[] = $row[$var];

HTH。

于 2012-05-18T01:35:20.860 回答