Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】PDO::FETCH_DEFAULT定数の使い方

FETCH_DEFAULT定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

PDO::FETCH_DEFAULT定数は、PHPのPDO(PHP Data Objects)拡張機能において、データベースから取得した結果セットのデフォルトのフェッチモードを表す定数です。PDOは、さまざまなデータベースに統一されたインターフェースを提供するクラスであり、この定数は、データベースからデータを読み込むPDOStatement::fetch()PDOStatement::fetchAll()といったメソッドが、どのような形式でデータを返すべきかを指定する「フェッチモード」のうち、デフォルトの挙動を選択するために利用されます。

具体的には、この定数をフェッチモードの引数として指定すると、現在のPDOオブジェクトまたはPDOStatementオブジェクトにすでに設定されているフェッチモードが適用されます。これは、PDO::setAttribute()メソッドやPDOStatement::setFetchMode()メソッドで明示的に設定されたフェッチモード、あるいはPDOオブジェクトが初期化された際のデフォルトのフェッチモード(通常は数値添字配列と連想配列の両方でアクセスできる形式)を意味します。

プログラマが直接fetch()メソッドなどにこの定数を指定することは稀で、通常はフェッチモードの引数を省略した場合と同じ挙動になります。しかし、明示的に「現在設定されているデフォルトのモードを使う」という意図を示す場合に概念的に使用されることがあります。この定数自体が特定のデータ形式(例:連想配列やオブジェクト)を直接指定するものではなく、設定済みのデフォルトモードへの参照として機能する点が特徴です。

構文(syntax)

1<?php
2
3// データベース接続オブジェクトを準備します (実際の接続情報に置き換えてください)
4$dsn = 'mysql:host=localhost;dbname=testdb;charset=utf8';
5$username = 'your_user';
6$password = 'your_password';
7$pdo = new PDO($dsn, $username, $password);
8
9// PDOオブジェクトのデフォルトのフェッチモードを設定します(例: 連想配列として結果を取得)
10$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
11
12// SQLクエリを実行し、PDOStatementオブジェクトを取得します
13$stmt = $pdo->query('SELECT id, name FROM users WHERE id = 1');
14
15// PDO::FETCH_DEFAULT を使用して結果を取得します
16// これにより、上記で PDO::ATTR_DEFAULT_FETCH_MODE に設定したフェッチモード(PDO::FETCH_ASSOC)が適用されます
17$row = $stmt->fetch(PDO::FETCH_DEFAULT);
18
19// $row は ['id' => 1, 'name' => 'ユーザー名'] のような連想配列になります
20
21?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

int

PDO::FETCH_DEFAULTは、PDOStatement::fetch()メソッドのデフォルトのフェッチモードを指定する定数です。この定数は、結果セットから1行を取得する際の返り値の型を、PDO::FETCH_BOTHとして扱います。

関連コンテンツ