時不時地,我進入的情況時,我有一種類似的查詢:PDO使用fetchall組鍵值對到assoc命令陣列
SELECT `key`, `value` FROM `settings`;
在這種情況下,我想獲得一個關聯陣列,使用key
& value
的值作爲該陣列的各個條目,例如如果數據庫包含:('first_name', 'Tom'), ('last_name', 'Jeferson')
,則數組應爲array('first_name' => 'Tom', 'last_name' => 'Jeferson');
。
最常見的方式做到這一點是:
$settings_flat = $db
->query("SELECT `name`, `value` FROM `settings`;")
->fetchAll(PDO::FETCH_ASSOC);
$settings = array();
foreach ($settings_flat as $setting) {
$settings[$setting['name']] = $setting['value'];
}
*另一種方式做,這是通過調用fetchAll(PDO::FETCH_COLUMN)
兩次&然後使用array_combine
創建陣列。但是,由於它涉及兩個數據庫的調用,所以我忽略了這個選項。
是否有另一種方法可以做到這一點?
太好了!不知道這個常數。顯然,PDO獲取文檔頁面並未全部列出。雖然'AS名稱,AS值'位是多餘的。 – Gajus
另外,不知道,我的IDE強調它對我來說......) – devdRew
有沒有辦法使用'PDO :: FETCH_KEY_PAIR'並有輸出作爲'對象'在同一時間? – adamj