【问题标题】:Sqlite3: display error Database is lockedSqlite3:显示错误数据库已锁定
【发布时间】:2017-05-23 16:21:36
【问题描述】:

我的 sqlite3 数据库显示这个错误:

Array (
  [0] => HY000
  [1] => 5
  [2] => "database is locked"
)

我已使用 php PDO 连接 sqllite3 数据库。我已成功读取数据库但无法更新/插入数据库。它总是显示上述错误。

我已经尝试了 777 对数据库的权限并对其进行了测试,但得到了相同的结果。

我已经使用$db->beginTransaction();$dbhandle->commit(); 解决了上述问题

现在的问题是我在更新查询之前使用了 begintransaction 并在执行查询之后提交。查询每次都返回 true 但不影响数据库。有什么想法吗?

注意:查询需要很长时间才能显示错误。

【问题讨论】:

  • 您是否对 SO 进行了搜索?看看右边,你会看到很多关于“database is locked”的问题...
  • @j0k 我已经搜索并应用了建议,但在我询问后得到了相同的结果。

标签: php sqlite pdo


【解决方案1】:

我的问题已经解决了。

sqlite3 数据库中的问题。我在 Ubuntu 10.04 上使用过 sqlite3 3.6.22,这个 sqlite3 不支持多线程,所以我在 sqlite3 3.7.7 版本上进行了测试,并使用从 http://www.sqlite.org/wal.html 读取的 Pragma 命令。

【讨论】:

【解决方案2】:

确保数据库文件所在的目录对db的用户有写权限。写入数据库时​​会创建一个临时文件。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 2018-05-25
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多