Intereting Posts

PDO MySQL fetchAll (), используя удвоенную необходимую память в результате?

Когда я использую ->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 ?

Мне в основном просто любопытно. Я не ожидаю, что это существенно повлияет на мою программу. Благодарю.

Результирующие значения сохраняются дважды в памяти?

Да. См. Руководство :

PDO :: FETCH_BOTH (по умолчанию): возвращает массив, индексированный как с именем столбца, так и с номером столбца с 0-индексом, возвращаемым в результирующий набор

Используйте необязательный параметр $fetch_style чтобы изменить способ поведения fetchAll ().

 $result = $sth->fetchAll(PDO::FETCH_ASSOC);