尝试在我的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"]
,其中列是名称和资本。
答案 0 :(得分:2)
我必须看看你的专栏是什么,但不应该是:
$retval = array();
while ($row = mysql_fetch_assoc($result)) {
$retval[ $row['country'] ] = $row['capital'];
}
答案 1 :(得分:0)
这是因为你要覆盖相同的值(这里是列名。)类似于:
$retval['a'] = 1;
$retval['a'] = 2;
// ...
改为使用:
$retval[] = $row[$var];
HTH。