could not find driver
と出力されてしまう
問題
授業内で提示されたサンプルコード(例)を使用した際に、以下のエラーメッセージが出力される。なお日本語テキスト(「接続に失敗しました」)は状況によるため、メッセージの本体である could not find driver
に注目する。
接続に失敗しました: could not find driver

原因
なんらかの理由で「古いpdo_mysqlドライバの入っていないイメージ」で開発コンテナーが起動している状態となっていることが原因。 よって、最新のDockerイメージに差し替えればよい。
この症状は、以前の授業でdensukest/xampp-devenv:alpineをロードしたことのある環境であれば発生しうる状況になっている。
対応
このエラーが発生した場合、最新のdensukest/xampp-devenv:alpine
イメージに更新をかけることで解決する。
補足事項
本メッセージは、下記のPHPコードにより発生する、そのためエラーメッセージの出力コード(try
〜catch
での例外捕捉)を行っていないコードではメッセージが出力されないことに留意してください。
try {
// PDOを用いてデータベースに接続する
$pdo = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
// 接続できなかった場合のエラーメッセージ
exit('データベースに接続できませんでした:' . $e->getMessage());
}