PHPでSQLite3 基本操作

Windows環境でSQLite3を扱う手順

php.iniの設定

拡張機能(dll)を有効化

extension=php_sqlite3.dll

PHPからDBに接続

C:\下にsqlite3を作成。
テストDBを作成後、テストテーブルを作成。

PHP

// 接続(DBが存在しない場合はDB作成) $db = new SQLite3('C:\sqlite3\test.db'); // TABLE作成 $db->exec("CREATE TABLE test (test_name text, test_datetime timestamp NOT NULL default (datetime(CURRENT_TIMESTAMP,'localtime')))");

default CURRENT_TIMESTAMP にするとUTCになってしまうので、default (datetime(CURRENT_TIMESTAMP,'localtime')) としてJSTにする。

テストデータをINSERT。

PHP

// 接続 $db = new SQLite3('C:\sqlite3\test.db'); // 実行(INSERT) $db->query("INSERT INTO test (test_name) VALUES ('foo')"); $db->query("INSERT INTO test (test_name) VALUES ('baz')"); $db->query("INSERT INTO test (test_name) VALUES ('bar')");

SELECTで確認。

PHP

// 接続 $db = new SQLite3('C:\sqlite3\test.db'); // 取得(SELECT) $result = $db->query('SELECT * FROM test'); while ($row = $result->fetchArray()) { echo $row[0] . "\n"; echo $row[1] . "\n"; }

トランザクション

PHP

$db = new SQLite3('C:\sqlite3\test.db'); // BEGIN $db->exec('begin'); try { $stmt = $db->prepare('insert into test (test_name) values(:test_name)'); $stmt->bindValue(':test_name', 'foo', SQLITE3_TEXT); $result = $stmt->execute(); // COMMIT $db->exec('commit'); } catch (Exception $e) { // ROLLBACK $db->exec('rollback'); $e->getTraceAsString(); return; } $result = $db->query('SELECT * FROM test'); while ($row = $result->fetchArray()) { echo $row[0] . "\n"; echo $row[1] . "\n"; } $db->close();

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。主にLAPP環境でPHPを書いています。最近はjQueryで遊んでいます。
※動作確認について