topic: db (PDO / SQL / マルチDB) / ch10
ch10 — DSN 比較 / 複数 DB 接続
学習目標
- SQLite / MySQL / PostgreSQL の DSN 文字列の違いを読み分けられる
- PDO は DSN を切り替えるだけ で同じコードが 3 DB で動くと理解する
- 環境変数で接続先を切り替える発想を身につける
所要時間
スライド 4 分 + ドリル 1 問 = 10 分
ドリル
| no | 内容 |
|---|---|
| 01 | 3 種類の DSN サンプルを出力し、SQLite で実接続して件数を表示 |
採点用 DB について
採点ランナーは tests/setup.sql を一時 SQLite に流し込み、そのファイルパスを環境変数 DOJO_DB_PATH で渡してきます。SQLite だけが実接続対象です。
$pdo = new PDO('sqlite:' . getenv('DOJO_DB_PATH'));
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);MySQL / PostgreSQL は DSN サンプル文字列を出力するだけ で OK。実際の接続テストは Docker 環境を用意したときに行う。
Docker で MySQL / PostgreSQL を試したい場合
実際の MySQL / PostgreSQL コンテナに接続して動作確認したい場合は、リポジトリ直下の docker/README.md を参照してください (docker compose で MySQL/PostgreSQL を起動する手順)。
演習問題(1問)
サイト内で問題文・雛形・解答例を確認できます。実際に手元で解くには教材リポジトリ(nomuraya-dojo/php)を clone してください。