PDO MySQL fetchAll()在结果中使用双倍必要的内存?

Bra*_*rad 13 php pdo

当我使用->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
        )
Run Code Online (Sandbox Code Playgroud)

等等

结果值是否在内存中存储了两次?一个在数字数组索引下,01,和另一个在其命名索引下,如weekath

我主要是好奇.我不认为这会对我的程序产生重大影响.谢谢.

Pek*_*ica 19

结果值是否在内存中存储了两次?

是.参见手册:

PDO :: FETCH_BOTH(默认值):返回由结果集中返回的列名和0索引列号索引的数组

使用可选$fetch_style参数更改fetchAll()的行为方式.

$result = $sth->fetchAll(PDO::FETCH_ASSOC);
Run Code Online (Sandbox Code Playgroud)