前提・実現したいこと
PHP(Laravel)の学習で、掲示板アプリを作っています。
Laravelを使用していて、php artisan migrateをしようとしていますが、PDOException::("could not find driver")というエラーメッセージが出てしまい、先に進めません。
発生している問題・エラーメッセージ
Illuminate\Database\QueryException : could not find driver (SQL: select * from information_schema.tables where table_schema = prc_miniblog and table_name = migrations and table_type = 'BASE TABLE')
Exception trace:
1 PDOException::("could not find driver")
C:\MAMP\htdocs\laraveltest\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
該当のソースコード
env
DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=prc_miniblog DB_USERNAME=root DB_PASSWORD=root DB_SOCKET=""
database
'connections' => [ 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'prc_miniblog'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', 'root'), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'prefix_indexes' => true, 'strict' => true, 'engine' => null, 'options' => extension_loaded('pdo_mysql') ? array_filter([ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), ]) : [], ], ],
試したこと
■ php.iniファイルで、以下のコードがコメントアウトされていないか確認。
extension_dir = "C:\MAMP\bin\php\php7.2.14\ext"
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
■ extension_dirで指定されたディレクトリに、以下のファイルがあることを確認。
php_mysqli.dll
php_pdo_mysql.dll
■ phpInfoで以下の情報を確認
PDO Support で PDO driversがmysqlになっている。
PDO Driver for MySQLのClient API versionで、mysqlnd 5.0.12-dev - 20150407 が表示されている。
いろんなサイトを見て試しましたが、どうしても解決できません。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
windows 10
MAMP 4.1.1.18195
PHP 7.2.14
MySQL 5.7.24
Laravel Framework 6.17.0
追記: 自己解決
コマンドプロンプトで、php --ini で読み込んでいるphp.iniファイルを確認すると
Loaded Configuration File: C:\MAMP\bin\php\php7.2.14\php.ini
しかし、MAMPからphpInfo()で確認をすると
Loaded Configuration File C:\MAMP\conf\php7.2.14\php.ini
となり、読み込まれているphp.iniファイルが違うということが判明。
どうして、そうなるのかは分かっていないのですがコマンドプロンプトで表示されているphp.iniを置き換えてやることで問題解決しました。
まだ回答がついていません
会員登録して回答してみよう