PHPからsqliteへ接続したい
PHPやLaravelなどのPHPフレームワークからSQLiteへ接続したいことがあります。
PHPからSQLiteへ接続する際には、接続用のドライバーが必要になります!
今回はその接続用ドライバーのインストール方法を紹介します。
Ubuntuの場合のインストール方法
発生するエラー
こちらは、PHPのフレームワークLaravelで発生したエラー例です。
SQLiteへ接続しようとした際に、以下のようにPDOException::(“could not find driver”)というエラーが発生しています。
Illuminate\Database\QueryException : could not find driver (SQL: PRAGMA foreign_keys = ON;)
at /home/***/***/***/src/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664
660| // If an exception occurs when attempting to run a query, we'll format the error
661| // message to include the bindings with SQL, which will make this exception a
662| // lot more helpful to the developer instead of just the database's errors.
663| catch (Exception $e) {
> 664| throw new QueryException(
665| $query, $this->prepareBindings($bindings), $e
666| );
667| }
668|
Exception trace:
1 PDOException::("could not find driver")
/home/***/***/***/src/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70
2 PDO::__construct("sqlite:/home/***/***/***/src/database/database.sqlite", [])
/home/***/***/***/src/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70
Please use the argument -v to see more details.
PHPのバージョンを確認する
SQLiteの接続用ドライバーをインストールするには、どのPHPバージョンのものをインストールするか指定する必要があります。
まずは、以下のコマンドでPHPのバージョンを確認しましょう!
$ php --version
実行結果
実行結果から、PHPのバージョンは7.2であることがわかりました!
PHP 7.2.6-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Jun 11 2018 14:59:25) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.6-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
php-sqliteをインストールする
SQLiteの接続用ドライバーをインストールしていきましょう!
コマンド例
以下のコマンド例のようにphp[バージョン]-sqlite3のバージョンのところに使用しているPHPのバージョンを入れて下さい。
$ sudo apt-get install php[バージョン]-sqlite3
インストールする
今回僕の環境のPHPのバージョンは、7.2でしたので実際に実行するコマンドはこのようになります。
$ sudo apt-get install php7.2-sqlite3
これでDB接続の際のエラーはでなくなりました!
PHPのビルトインサーバー、Apacheなどのミドルウェア、Laravelなどのフレームワークを使用している場合は、再起動等が必要になるので注意してください。
Windowsの場合のインストール方法
発生するエラー
こちらもPHPのフレームワークLaravelで発生したエラー例です。
SQLiteへ接続しようとした際に、could not find driverというエラーが発生しています。
In Connection.php line 664:
could not find driver (SQL: select * from sqlite_master where type = 'table' and name = migrations)
In Connector.php line 67:
could not find driver
php-sqliteをインストールする
Windowsの場合のエラー解決方法は、php.iniで拡張機能を有効にすればSQLiteの接続用ドライバーを有効化できます。
現在使用しているPHPを確認する
whereコマンドで、PHPのインストール場所を確認できます。
まずコマンドプロンプトを開き、以下のコマンドを実行してください。
>where php
C:\****\****\php.exe
PHPがインストールされている場所がわかりましたね!
拡張機能を有効化する
先程確認したPHPがインストールされている場所にPHPの設定ファイルであるphp.iniがありますので、これを編集することでSQLiteの接続用ドライバーを有効化しましょう!
extension=pdo_sqliteの記述が;でコメントアウトされていますので、コメントアウトを外して有効化すればOKです!
php.ini
;extension=pdo_sqlite
以下のようにコメントアウトを外しましょう!
extension=pdo_sqlite
これでDB接続の際のエラーが解消されます!
こちらもPHPのビルトインサーバー、Apacheなどのミドルウェア、Laravelなどのフレームワークを使用している場合は、再起動等が必要になるので注意してください。
まとめ
いかがでしたでしょうか?
PHPからSQLiteへの接続はうまくいきましたか?
SQLiteは軽量なデータベースでちょっとした開発にはとても便利ですので、活用していきましょう!
またPHPのフレームワークであるLaravelの参考になる記事を書いていますので是非みていってください!
Laravel始めて間もない方は、Laravelの上達方法についても詳しく記事をまとめていますので見てみてくださいね!
Laravelの学習をこれから始めたい!という方は、Laravelの入門記事も書いていますので是非見て下さい!
Laravelでオススメな本を探している!という方は、こちらで僕がLaravelの書籍をまとめて感想を書いていますので購入の際の参考にしてください!
コメント