今天我用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了!
分享到:
相关推荐
Sqlite解决database locked问题
解决sqlite死锁示例异常database is locked示例
解决sqlite3 databaselocked 问题的代码实例,比较有参考价值。
如果多线程同时读写(这里的指不同的线程用使用的是不同的Helper实例),后面的就会遇到android.database.sqlite.SQLiteException: database is locked这样的异常。对于这样的问题,解决的办法就是keep single ...
SQLite数据库系统设计与实现 英文原版PDF,非常好的SQLite源码学习文档
sqlite database browser 适合 Mac OS版本,可以轻松管理数据库sqlite文件数据,方便快捷哦
SQLite Database Browser, SQLite数据库专用客户端工具。
pc6-SQLite Database Browser IPHONE存档修改器
sqlite数据库编辑工具SQLiteDatabaseBrowser sqlite数据库编辑工具SQLiteDatabaseBrowser
该工具主要用于浏览和编辑 SQLite 数据库,它兼容标准的 SQLite 2.x 和 3.x 数据库。SQLite Browser 的功能强大,用户界面友好,使得数据库的管理变得简单易行。此外,SQLite Browser 项目在 GitHub 上开源,欢迎...
SQLite Database browser 是一个 SQLite 数据库的轻量级 GUI 客户端,基于 Qt 库开发,主要是为非技术用户创建、修改和编辑 SQLite 数据库的工具
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。
sqlite数据库操作软件
SQLite数据库浏览器,很好地一款SQLite数据库浏览器,可以很方便的查询和修改
Android 的 SQLite Database
桌面数据库工具 SQLite Database 简单的数据库工具,小巧实用。
mac下的sqlite查看工具,简单好用,android开发也有同名的小工具
sqlite database browser3是针对sqlite数据库而开发的一个可视化数据库浏览器,简称sqlite查看器,使用它用户可以用最简单、直观的方式创建、编辑、处理SQL数据库,可以创建需要的数据库并分别为其创建图表,百分百...