ロリポップでSQLite

2 月 26th, 2007 in Lolipop, PHP, Programming

ロリポップのMySQLサーバーは重すぎで嫌だって人ののための,ロリポップでSQLiteを使うためのTips
(※07/05/02にロリポップがSQLiteに正式に対応しました.ロリポップでPHP拡張を扱う一般的な手法かと思うので残しておきます)

コンパイル

wget http://pecl.php.net/get/SQLite-x.x.x.tgz
 # 又は,pecl download sqlite
tar xzvf SQLite-x.x.x.tgz
cd SQLite-x.x.x
phpize
./configure
make
 # modules/sqlite.soが出来る

ロリポップで使う

if (!extension_loaded("sqlite")) {
 dl("sqlite.so");
}debug_zval_dump(sqlite_libversion());
debug_zval_dump(sqlite_libencoding());
$s = sqlite_open("weztest.sqlite", 0666, $err);
debug_zval_dump($err);
debug_zval_dump($s);
$r = sqlite_query("create table foo (a INTEGER PRIMARY KEY, b INTEGER )", $s);
debug_zval_dump(sqlite_last_error($s));
debug_zval_dump(sqlite_error_string(sqlite_last_error($s)));
$r = sqlite_query("select *, php('md5', sql) as o from sqlite_master", $s);
debug_zval_dump($r);
debug_zval_dump(sqlite_num_rows($r));
debug_zval_dump(sqlite_num_fields($r));
for ($j = 0; $j < sqlite_num_fields($r); $j++) {
 echo "Field $j is " . sqlite_field_name($r, $j) . "n";
}
while ($row = sqlite_fetch_array($r, SQLITE_ASSOC)) {
 print_r($row);
}
sqlite_close($s);

以下のように表示され,カレントディレクトリにweztest.sqliteが作成されれば勝ち組

string(6) "2.8.14" refcount(1)
string(7) "iso8859" refcount(1)
NULL refcount(2)
resource(2) of type (sqlite database) refcount(2)
long(0) refcount(1)
string(12) "not an error" refcount(1)
resource(4) of type (sqlite result) refcount(2)
long(1) refcount(1)
long(6) refcount(1)
Field 0 is type
Field 1 is name
Field 2 is tbl_name
Field 3 is rootpage
Field 4 is sql
Field 5 is o
Array
(
    [type] => table
    [name] => foo
    [tbl_name] => foo
    [rootpage] => 3
    [sql] => create table foo (a INTEGER PRIMARY KEY, b INTEGER )
    [o] => 2f5a980ca57765ddef1a9434c15d755f
)

ちなみにsoファイルを一箇所(例えばextensionsディレクトリ)にまとめたいときはこちら参照. 今回の手法は一般的にロリポップでPECLを使う際に適用できると思う.たぶん
そうそうSQLiteといえばこの本↓がおすすめかと.amazonで中見検索ができるので見てみてはいかがでしょうか.

SQLite入門 すぐに使える軽快・軽量データベース・エンジン

Price: ¥ 2,940 JPY

Lowest used price: ¥ 4,850 JPY

Leave a Reply

Search

Blog

Twitter

Wassr

Recommend


とりあえず買っとく?

Ads

ドミノ・ピザ 5%OFF!

 iTunes Store(Japan)

Categories

Tags

Counter

total : 00060013
today : 00000074