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();