PHP Conference Japan 2024

SQLite3::exec

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::exec對指定的資料庫執行無結果查詢

描述

public SQLite3::exec(字串 $query): 布林值

對指定的資料庫執行無結果查詢。

注意: SQLite3 可能需要在執行查詢期間建立 » 暫存檔案,因此對應的目錄可能必須是可寫的。

參數

query

要執行的 SQL 查詢 (通常是 INSERT、UPDATE 或 DELETE 查詢)。

回傳值

如果查詢成功,則回傳 true,失敗則回傳 false

範例

範例 #1 SQLite3::exec() 範例

<?php
$db
= new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE bar (bar TEXT)');
?>

新增附註

使用者貢獻的附註 2 個附註

18
alexandre dot schmidt at gmail dot com
8 年前
我一直收到「資料庫已鎖定」的錯誤,直到我發現 sqlite3 的某些功能必須使用 SQL 特殊指令 (即使用 PRAGMA 關鍵字) 設定。例如,顯然解決我的「資料庫已鎖定」問題的方法是將 journal_mode 設定為 'wal' (它預設為 'delete',如這裡所述:https://www.sqlite.org/wal.html (請參閱啟用和設定 WAL 模式))。

所以基本上我必須做的是建立一個與資料庫的連線,並使用 SQL 陳述式設定 journal_mode。範例

<?php
$db
= new SQLite3('/my/sqlite/file.sqlite3');
$db->busyTimeout(5000);
// WAL 模式對並行性有更好的控制。
// 來源:https://www.sqlite.org/wal.html
$db->exec('PRAGMA journal_mode = wal;');
?>

希望這有幫助。
0
synnus
2 年前
<?php
$db
->exec('PRAGMA journal_mode = wal;');
$db->exec('PRAGMA synchronous = NORMAL;');
$db->exec('PRAGMA schema.taille_cache = 16000;');
?>
To Top