PDO で列値を使用したインデックス配列
データベースからデータを取得する探求では、結果を取得する必要があることがよくあります。特定の列値によってインデックス付けされたセット。これは、大規模なデータセットを操作する場合や、特定のキーを使用してデータをすばやく検索する場合に特に便利です。
たとえば、次のデータを含む「ブランド」テーブルを考えてみましょう:
id | name | url |
---|---|---|
1 | Solidfloor | solidfloor |
2 | Quickstep | quickstep |
4 | Cleanfloor | cleanfloor |
5 | Blue Dolphin | blue-dolphin |
6 | Krono | krono |
8 | Meister | meister |
従来、PDO は PDO::FETCH_ASSOC モードを提供しており、キーが列名である連想配列を返します。ただし、このアプローチはインデックス作成の要件に完全には適合しません。
簡潔な解決策として、PDO は PDO::FETCH_UNIQUE というあまり知られていないパラメーターを提供します。このパラメーターを利用すると、結果の配列のインデックスが SELECT 句にリストされている最初のフィールドの値、またはこの場合は id フィールドの値になるように指定できます。
$data = $pdo->query('SELECT * FROM brands')->fetchAll(PDO::FETCH_UNIQUE);
Using PDO:: FETCH_UNIQUE は、結果の配列が id 列によってインデックス付けされることを保証し、より直感的なデータ構造を提供します。
[ 1 => [ 'name' => 'Solidfloor', 'url' => 'solidfloor', ], 2 => [ 'name' => 'Quickstep', 'url' => 'quickstep', ], 4 => [ 'name' => 'Cleanfloor', 'url' => 'cleanfloor', ], ]
PDO::FETCH_UNIQUE を使用すると、複雑なループ処理の必要性がなくなり、データベース結果のインデックスを作成するより効率的な方法が提供されます。
以上が特定の列値を使用して PDO 結果セットにインデックスを付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。