SQLiteでCREATE TABLEしてもどうもDEFAULR CURRENT_TIMESTAMPがきかないんでおかしいなーと思ってたら、CURRENT_TIMESTAMPはSQLite2ではサポートしてないそうです。そうなのか。じゃあSQLite3でやればいいじゃないと思ったんだけど、さくらインターネットの場合普通にSQLiteDatabaseとか使って接続するとSQLite2になっちゃう。じゃあどうするかっていうと…まぁ、PDO使えば良いんですね。SQLite3目的じゃなくても普通に使うと思いますけども。
- さくらインターネットの場合
- PDOを使って接続する
一方でローカル環境にxamppを入れてSQLiteを使用する場合、デフォルトではPDOを使用しない設定になっていてPDOを使っても「ドライバーが見つかりません」というエラーが出ます。なので、SQLite3を使用する場合にはphp.iniを以下のように変更してやる必要があります。
;extension=php_pdo_sqlite.dll
↓
extension=php_pdo_sqlite.dll
こうすることで、PDOを使ったときにはSQLite3を使用するようになります。
- xamppの場合
- php.iniを変更してPDO_SQLiteを有効にした上で、PDOを使って接続する
なるほどねー
ようやくなんかすっきりしました。
しかしおかげでせっかく作ったコードをだいぶ書き直しだな、こりゃ。やれやれ。
参考
さくらインターネットのレンタルサーバ | 大人電話相談室
xamppliteでSQLite3を使う方法。 - require_twice