Laravelとデータベースを接続しようと設定中にphp artisan tinkerしApp\User::all()->toArray();でユーザをみようとしたところエラーがでた。「Illuminate/Database/QueryException with message ‘could not find driver (SQL: select * from users)’ 」
ドライバーが見つからないらしい。DBの前にやらなければいけないことがありそうだ。
動作環境
ざっくり動作環境はMacのEl capitan。
php-7.2.5
Homebrew使ってます。
phpbrewつかってます。
php.iniの修正
php.iniを修正するとの意見があり、php.iniのファイルを探すも見つからない。Macは少しパスが違うらしい。
ターミナルで以下コマンドを実行。
$ php -i | grep php.ini
■ response
Configuration File (php.ini) Path => /Users/k/.phpbrew/php/php-7.2.5/etc
Loaded Configuration File => /Users/k/.phpbrew/php/php-7.2.5/etc/php.ini
php.iniの場所がわかったので、さっそく開いてみたが見当違いだったらしい。
念のため読み込んでいるPHP.iniの確認
php –ini
パスは正しいようだ。
php-mysqlndを入れる(解決)
phpは5.3より前のバージョンではphp-mysqlというパッケージを使ってphpとMySQLのやりとりが行われていたが、php5.3以降はphp-mysqlndというパッケージを使うことが推奨されているらしい。
怪しいのでphp-mysqlndをいれたいか、windowsのやり方ばかりでMacのやり方がわからない。
だめもとでインストール試みた。
brew install php-mysqlnd
だめだった。
わからないのでmysqlのパッケージ付きで再度PHPをインストールしてみる。
phpbrew install 7.2.5 +default +mysql
エラーが変わった。ドライバーは認識したということでこのエラーは解決。
一応出ているエラーは以下
PHP Parse error: Syntax error, unexpected T_NS_SEPARATOR, expecting T_STRING on line 1
Syntax errorなのでドライバー問題は解決。
にしてもまたエラーか。
参考サイト:Ubuntu18.04.1にphpbrew+php7.2+apache2+MySQL5.7の開発環境を整える方法