第9章 データベース連携 / 第1回 模擬試験

PHPのPDO(PHP Data Objects)に関する次の記述のうち、正しいものはどれか。

PDOは、特定のデータベースに特化したAPIである。
PDOは、プリペアドステートメントをサポートしていない。
PDOは、異なるデータベースに対して統一されたインターフェースを提供する。 正解
PDOは、トランザクション処理をサポートしていない。
解説
PDO(PHP Data Objects)は、MySQL・PostgreSQL・SQLiteなど異なる種類のデータベースに対して共通のAPI(`prepare()`, `execute()`, `fetch()`など)でアクセスできるようにするデータベース抽象化レイヤーです。 他の選択肢が誤りである理由は次の通りです。 ・PDOは特定のデータベース専用ではなく、接続先を変えても(DSNを切り替えるだけで)同じコードでアクセスできることが最大の利点です。 ・PDOはプリペアドステートメント(`prepare()`/`bindValue()`/`execute()`)を標準でサポートしています。 ・PDOは`beginTransaction()`, `commit()`, `rollBack()`によるトランザクション処理をサポートしています。 例: ``` $pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass); $stmt = $pdo->prepare('SELECT * FROM users WHERE id = ?'); $stmt->execute([$id]); ``` (参照: 独習PHP 第4版 第9章 データベース連携 9.3節 PDO(PHP Data Objects) p.425〜427)