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);
▶ 3v4l で実行

MySQL / PostgreSQL は DSN サンプル文字列を出力するだけ で OK。実際の接続テストは Docker 環境を用意したときに行う。

Docker で MySQL / PostgreSQL を試したい場合

実際の MySQL / PostgreSQL コンテナに接続して動作確認したい場合は、リポジトリ直下の docker/README.md を参照してください (docker compose で MySQL/PostgreSQL を起動する手順)。

演習問題(1問)

  1. ドリル 01 — DSN を 3 種類並べて、SQLite に実接続する

    starter.php answer.php

サイト内で問題文・雛形・解答例を確認できます。実際に手元で解くには教材リポジトリ(nomuraya-dojo/php)を clone してください。