PHP sqlite3 使用方法
sqlite3 是一種輕量級的關(guān)系型數(shù)據(jù)庫,常用于小型應(yīng)用程序中。在 PHP 中,可以通過 sqlite3 擴(kuò)展庫來操作 sqlite3 數(shù)據(jù)庫。
以下是使用 PHP sqlite3 操作數(shù)據(jù)庫的基本流程:
1. 打開數(shù)據(jù)庫
$db = new SQLite3('test.db');
2. 執(zhí)行 SQL 語句
$sql = "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER NOT NULL)"; $db->exec($sql);
3. 插入數(shù)據(jù)
$sql = "INSERT INTO users(name, age) VALUES('Tom', 18)"; $db->exec($sql);
4. 查詢數(shù)據(jù)
$sql = "SELECT * FROM users"; $result = $db->query($sql); while ($row = $result->fetchArray()) { echo $row['name'] . ', ' . $row['age'] . '<br>'; }
5. 關(guān)閉數(shù)據(jù)庫連接
$db->close();
在實(shí)際應(yīng)用中,可能需要更加復(fù)雜的操作,例如:
1. 事務(wù)處理
$db->beginTransaction(); try { $sql1 = "INSERT INTO users(name, age) VALUES('Tom', 18)"; $db->exec($sql1); $sql2 = "UPDATE users SET age = 19 WHERE name = 'Tom'"; $db->exec($sql2); $db->commit(); } catch (Exception $e) { $db->rollback(); }
2. 預(yù)處理語句(防止 SQL 注入)
$stmt = $db->prepare("SELECT * FROM users WHERE name = :name and age > :age"); $stmt->bindValue(':name', 'Tom', SQLITE3_TEXT); $stmt->bindValue(':age', 18, SQLITE3_INTEGER); $result = $stmt->execute(); while ($row = $result->fetchArray()) { //... }
3. 使用 ORM 框架
//使用 redbeanphp ORM 框架 require_once 'lib/rb.php'; R::setup('sqlite:test.db'); $user = R::dispense('user'); $user->name = 'Tom'; $user->age = 18; $id = R::store($user); //...
總之,PHP sqlite3 在小型應(yīng)用程序中使用非常方便快捷,但需要注意防止 SQL 注入等安全問題。