PHP SQLite
PHP勉強し始めているのだけど。
DB操作のところで、mysql とか入れるの面倒だから SQLite にしようとしてはまった。ちなみに環境は、CentOS/5, php/5.1.6, sqlite/3.3.6 です。
最初、php-pear[-DB] パッケージ入れ忘れていたというのはまあともかくとしても。
これは…。sqlite3 で作ったデータベースファイルが読み込めなくてこれで半日くらいはまったぞ。しかもこれ、sqlite コマンドでDBファイルコマンドを作らずに、php 内で create database 実行させて生成して、ファイルの中身を見るとすぐわかったりしていままで何でそんな簡単なことをやらなかったのかと自己嫌悪。
<?php require_once 'DB.php'; $dsn = array( "phptype" => 'sqlite', "database" => './foo.db', ); print_r(DB::parseDSN($dsn)); $db = DB::connect($dsn); if(DB::isError($db)) { die("Cannot connect: " . $db->getMessage() . "\n"); } $db->setErrorHandling(PEAR_ERROR_DIE); if(DB::isError($db)) { die("Error: connect:"); } $sql = "CREATE TABLE foo (" . "bar text," . "baz text" . ")"; $q = $db->query($sql); if(DB::isError($q)) { die ("Error : create table : " . $q); } ?>
foo.db ファイルを生成する。
$ php foo.php $ cat foo.db ** This file contains an SQLite 2.1 database **(u?????T;??;tablefoofoo3CREATE TABLE foo (bar text,baz text)
しっかり SQLite2.1 ってかいてやんの。
あーPDO使えって話なのな。手元の本が PEAR でやるように書いてあったからそれに固執しすぎたか…。2005年…。
- 作者: David Sklar,桑村潤,廣川類
- 出版社/メーカー: オライリージャパン
- 発売日: 2005/10/27
- メディア: 単行本
- 購入: 6人 クリック: 54回
- この商品を含むブログ (41件) を見る
Ref.
- パッケージで入れたPHP 5に最新版sqlite拡張を入れる - 肉とご飯と甘いもの @ sotarok
- [PHP][SQLite] SQLiteのデータベースには複数の形式があり、ドライバが対応できていなければ扱えない。 - SumiTomohikoの日記
結局、rpmsearch で sqlite2 パッケージを落としてきて入れて使う。
いや、ちゃんと PDO の使い方覚えるべきか。もう疲れたな…。