PHP5.3以降からSQLite3を扱うクラスが用意されています。
これを使うとSQLiteの操作がとても簡単なのでこちらで紹介します。
<?php
// 作成するデータベース名
$db_name = 'test.db';
// 作成するテーブルのSQL
$sql = <<<DOC_END
CREATE TABLE test_tbl (
test_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
test_name TEXT
)
DOC_END;
// INSERTするデータのSQL
$sql2 = <<<DOC_END
INSERT INTO test_tbl(test_id, test_name) VALUES(1, '細野晴臣');
INSERT INTO test_tbl(test_id, test_name) VALUES(2, 'ほそのはるおみ');
INSERT INTO test_tbl(test_id, test_name) VALUES(3, 'ホソノハルオミ');
DOC_END;
try {
$db = new SQLite3($db_name);
} catch (Exception $e) {
print 'DB接続エラー。<br>';
print $e->getTraceAsString();
}
$db->exec( $sql );
$db->exec( $sql2 );
$db->close();
?>
TEXT NUMERIC INTEGER REAL NONE
DATEやDATETIME型は存在しないのでTEXT型で処理するのがいいでしょう。
<?php
$encoding = 'UTF-8';
mb_internal_encoding($encoding);
ini_set('mbstring.internal_encoding', $encoding);
ini_set('mbstring.script_encoding', $encoding);
header("Content-Type: text/html; charset={$encoding}");
// 接続するデータベース名
$db_name = 'test.db';
try {
$db = new SQLite3($db_name);
} catch (Exception $e) {
print 'DB接続エラー。<br>';
print $e->getTraceAsString();
}
$results = $db->query('SELECT * FROM test_tbl');
print '<pre>';
while ($row = $results->fetchArray(SQLITE3_ASSOC)) {
print_r($row);
print '<br>';
}
print '</pre>';
$db->close();
?>
PRAGMA table_info(test_tbl);
select name from sqlite_master where type = 'table'
update sqlite_sequence set seq=1 where name='テーブル名';
https://pgmemo.tokyo/data/filedir/897_1.zip
↑ このファイルをダウンロードして自分のサーバ上にて実行してください。
SQL文入力画面が表示されます。
■ Lita
http://www.dehats.com/drupal/?q=node/58
■ sqlite browser
http://sourceforge.net/projects/sqlitebrowser/
データベースファイル( *.db )を直接開くと色々操作できます。とても便利。
<b>(※注意 なおWEBサービス運用中のデータベースファイルを開く時はコピーして別名で操作することをおすすめします)</b>
https://addons.mozilla.org/ja/firefox/addon/sqlite-manager/
既存のデータを残しつつテーブル構造を変更するときはこのアドオンが便利です。
http://flatsystems.net/js_mysql_to_sqlite.html