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

PDOを使ったデータベース接続に関する次の記述のうち、誤っているものはどれか。

PDOのインスタンス生成には接続先DSN・ユーザー名・パスワードを指定する。
接続に失敗すると`PDOException`がスローされる。
PDOは特定のデータベース(MySQLのみ)専用のクラスである。 正解
トランザクションは`beginTransaction()`、`commit()`、`rollBack()`で制御する。
解説
PDOは特定のデータベース専用のクラスではなく、MySQL・PostgreSQL・SQLiteなど複数の種類のデータベースに対して統一されたAPIでアクセスできるようにする、データベース抽象化レイヤーです。「MySQLのみ専用」という記述は誤りです。 他の選択肢が正しい理由は次の通りです。 ・PDOのインスタンスは`new PDO($dsn, $username, $password)`のように、接続先を示すDSN、ユーザー名、パスワードを指定して生成します。 ・接続に失敗すると、`PDOException`という例外がスローされます(`try-catch`で捕捉して処理するのが一般的です)。 ・トランザクションは`beginTransaction()`で開始、`commit()`で確定、`rollBack()`で取り消します。 例: ``` try { $pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass'); } catch (PDOException $e) { // 接続エラー処理 } ``` (参照: 独習PHP 第4版 第9章 データベース連携 9.3節 データベース抽象化レイヤー p.425〜427)