时不时地,我进入的情况时,我有一种类似的查询: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