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