我一直收到“数据库锁定”错误,直到我发现 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;');
?>
希望这有帮助。