问题:
在具有多个列的数据库中(例如, “姓名”、“年龄”、“性别”和“位置”),我们如何使用 PDO 的 fetchAll 方法检索特定格式的关联数组,其中每个数组的键是指定列中的字段(例如,“姓名”) )并且值是该键对应的行?
答案:
使用 PDO 的 fetchAll 方法,我们可以指定以下标志来实现所需的结果:
<code class="php">->fetchAll(\PDO::FETCH_GROUP|\PDO::FETCH_UNIQUE);</code>
通过组合 FETCH_GROUP 和 FETCH_UNIQUE,PDO 将自动按指定列对结果进行分组,并将第一列设置为每个组的键,同时排除重复记录。这消除了额外的嵌套级别或像当前这样的后处理操作的需要。
示例:
考虑以下示例数据集:
name | age | sex | position |
---|---|---|---|
Antony | 34 | M | programmer |
Sally | 30 | F | manager |
Matthew | 28 | M | designer |
使用推荐的 fetch 方法,我们可以检索所需的结果数组:
<code class="php">$result = $pdo->query('SELECT * FROM employee')->fetchAll(\PDO::FETCH_GROUP|\PDO::FETCH_UNIQUE); print_r($result);</code>
这将输出以下关联数组:
Array ( [Antony] => Array ( [age] => 34 [sex] => M [position] => programmer ) [Sally] => Array ( [age] => 30 [sex] => F [position] => manager ) [Matthew] => Array ( [age] => 28 [sex] => M [position] => designer ) )
以上是如何使用 PDO 检索按特定列分组的关联数组?的详细内容。更多信息请关注PHP中文网其他相关文章!