当我将->fetchAll()
与PDO一起使用时,当我执行print_r()
时,生成的数组看起来像这样:
Array
(
[0] => Array
(
[week] => 2006-03-05
[0] => 2006-03-05
[ath] => 112.89166667
[1] => 112.89166667
)
[1] => Array
(
[week] => 2006-03-12
[0] => 2006-03-12
[ath] => 260.04527778
[1] => 260.04527778
)
[2] => Array
(
[week] => 2006-03-19
[0] => 2006-03-19
[ath] => 219.23472222
[1] => 219.23472222
)
等等。
结果值是否在内存中存储了两次?一个在数字数组索引下,如0
和1
,另一个在其命名索引下,如week
或ath
?
我主要只是好奇。我不认为这会对我的程序产生重大影响。感谢。
答案 0 :(得分:19)
结果值是否在内存中存储了两次?
是。请参阅manual:
PDO :: FETCH_BOTH(默认值):返回由结果集中返回的列名和0索引列号索引的数组
使用可选的$fetch_style
参数更改fetchAll()的行为方式。
$result = $sth->fetchAll(PDO::FETCH_ASSOC);