wadigchan
@wadigchan

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

PHPからPDOを使ったデータベースへの接続のエラー。 Uncaught PDOException: could not find driver

Q&A

Closed

解決したいこと

PHPからPDOを使ったデータベースへの接続のエラー。

発生している問題

これをlocalhostで開こうとするとエラーになり出力されません(ユーザー名とパスワードは消してます。)
``

$dsn='mysql:host=localhost;dbname=blog_app;charset=utf8';
$user='';
$pass='';
$dbh= new PDO($dsn,$user,$pass);
var_dump($dbh);

エラー文はこちらです

Uncaught PDOException: could not find driver

自分で試したこと

この件を検索すると phpinfo の PDO drivers が無効になっているからそれを直せばよいという回答が多数なのですが、確認したところ有効になっていました。
php.ini でも確認しましたが、extension=php_pdo_mysql.dll などのコメントアウトもちゃんとされていました。

何が原因なのでしょうか...?
WindowsでMAMPを使っています。
回答のほどよろしくお願いします。

0

2Answer

ローカルでいろいろ環境を作ったりしていると、いつの間にか複数のPHPがインストールされていて、見ている設定などが別のものだった、ということもあったりします。

まずはこの辺りを改めて確認してみてください。

  • PHPのバージョン
  • MySQLのバージョン
  • phpinfoを実行した場所(今の作業環境と同じ?)
  • phpinfoのPDOの箇所(スクリーンショットを添付)
  • php.iniの場所と、そのextension設定(phpinfoに記載の場所)
  • extensionのディレクトリと、その中身(phpinfoに記載の場所)
1Like

Comments

  1. @wadigchan

    Questioner

    回答ありがとうございます。
    実は昨日、試しでXAMPPで同じことをやったらできたのですが、WindowsでMAMPは使えないのですか、、、?
  2. @wadigchan

    Questioner

    ありがとうございます。
    XAMPPに変えてlocalhostに出力は出来るようになったのですが、VScodeのパネルに出力するとcould not find driverのエラーが出てしまいます。これはまだ問題があるということでしょうか、、?
    パネルでは出力エラーなのにlocalhostにはちゃんと表示されるのが不思議で困っています。

XAMPPに変えてlocalhostに出力は出来るようになったのですが、VScodeのパネルに出力するとcould not find driverのエラーが出てしまいます。これはまだ問題があるということでしょうか、、?

XAMPP および "VSCodeのパネル" を使ったことがないので外してるかもしれませんが..

XAMPP で Apache が読み込んでいる php.ini と、VSCode のパネルで呼び出している PHP 実行環境が読み込んでいる php.ini が異なっているのではないでしょうか。

  • phpinfo() の php スクリプトを XAMPP の localhost で表示し、Loaded Configuration File の項を確認します。
  • コマンドプロンプトで php --ini して、同じように Loaded Configuration File の項を確認します。

参考:https://qiita.com/m-seikou/items/13d9ef24d48ecbd0d7cb

0Like

Your answer might help someone💌