[CodeIgniter] CodeIgniter1.7.2 で SQLite3 のDBを使う
CodeIgniterはPHP4との下位互換性を保っているせいか、標準で入っているSQLiteドライバーはSQLite2用のものらしい。PDOでのアクセス時は、その古いSQLiteドライバーに基づいているらしく、まともに動かない。
そういうわけで、有志が作成したPDOドライバーを導入しないとSQLite3のDBにはアクセスできない。
以下に、ドライバーの導入手順を示します。
手順
※CodeIgniter 1.7.2 用です。それより前のバージョンだと導入するドライバが違うかもしれないので、Wiki | CodeIgniterあたりを読んでください。
- Wiki | CodeIgniter から、「pdo driver 0 02 by xi.zip」をダウンロード
- CodeIgniter/system/database/drivers/pdo というディレクトリを作成し、その中に解凍する
- CodeIgniter/system/application/config/database.php を下記のように編集する
// DBファイルが /system/appilication/db/hige.sqlite3 にある場合
$db['default']['hostname'] = "";
$db['default']['username'] = "";
$db['default']['password'] = "";
$db['default']['database'] = "sqlite:".APPPATH."db/hige.sqlite3";
$db['default']['dbdriver'] = "pdo";
$db['default']['dbprefix'] = "";
これでアクセスできるようになります。
ちゃんとロードできているか確かめたい場合は、適当なviewファイルに
<?php echo $this->db->platform() . " ". $this->db->version(); ?>
と書いてみて、「pdo 3.6.20」などと出力されればOK。