PHPでSQLiteを使ってみる。
PHPの入門書でDBを使用する場合、導入の手軽さ(最初からバインドされている)からSQLiteを使用するケースが多いのでしょうか?自分の買った2冊はどっちもそうでした。
最初からバインドされているためか、特にインストールや初期設定のことについては触れていなかったので(見落とした可能性は十分あるが…)すぐに使用できるものとばかり思っていましたが、本のサンプルのとおりにプログラムを書いてコマンドラインより実行したところ、
Fatal error: Call to undefined function sqlite_open() in ....
と怒られてしまいました。
PHPのオンラインマニュアルのSQLite関数の項目を見たところ、
PHP 5 では、SQLite 拡張モジュールとエンジンは PHP 自身にバンドルされ、デフォルトでコンパイルされます。 しかし、PHP 5.1.0 以降では 手動で有効にする必要があります (共有モジュールとしてバンドルされるからです)。 さらに、PHP 5.1.0 以降では SQLite は PDO に依存するようになりました。そのため、 php.ini に以下の行を (この順に) 追加して PDO も 有効にしておく必要があります。
extension=php_pdo.dll extension=php_sqlite.dll
だそうな。
php.iniファイルに以下を追加
extension=php_pdo.dll extension=php_sqlite.dll
場所は、同様のextension=…の記述がたくさんあるところに適当に追加すればOKでしょう。
ちなみに、php_sqlite.dllはコメントアウトしてありますので、コメントをはずしてphp_pdo.dllを1つ上の行に追加してもいいでしょう。
php_pdo.dllとphp_sqlite.dllは、php.iniのあるフォルダ内にあるextフォルダの中にあるので、Paths and Directories の所にある
extension_dir = "extフォルダまでのパス"
と設定しましょう。
最後に、Apacheをリスタートして設定完了。
環境は