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