`
softwarexiang120
  • 浏览: 37837 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

(sqlite)database table is locked

阅读更多

今天我用php+sqlite+pdo开发一个网站时,发现了一个问题,这个问题折磨了我3、4个小时,现在将它发布出来供大家参考。

  网站开发完成后在我本机运行一切良好,我将它上传到服务器上测试运行时却出问题了,管理用户在登录时,总是时不时报一个错误:6 database table is locked;上网搜索了一下却未发现好的解决办法。

  那就只有自已来找出问题了。通过测试我发现是用户在登录时需fetch出一条用户的信息,但同时又需要对同一个表做update操作,这样就会报出6 database table is locked错误。

  知道了问题我就去找解决办法,开始我想是锁的问题,于是就在调用前加上了PRAGMA read_uncommitted=true这条语句,好象是起作用了,可是还是不太稳定,时不时的还是会报6 database table is locked错误,我就想是不是fetch后cursor没关闭,查了一下文档,发现有这么一个函数PDOStatement->closeCursor,于是就在update前先调用了一下$stmt->closeCursor();结果作用立竿见影。再也不报那个讨厌的错误了。

  就这样解决了这个问题,心情也一下就轻松起来了,就想将这个问题写出来与大家分享,一切OK了!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics