今天我用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了!
分享到:
相关推荐
"database is locked"错误是SQLite在遇到死锁情况时抛出的异常,意味着数据库当前处于锁定状态,无法进行预期的操作。本文将深入探讨SQLite死锁的原因、诊断方法以及解决策略。 **1. SQLite死锁原因** SQLite死锁...
在多线程环境下,由于并发操作不当,可能会出现“database is locked”(数据库被锁定)的错误,这通常涉及到SQLite的锁机制和事务处理。本文将深入探讨这个问题,并提供具体的解决方案。 一、SQLite锁机制 SQLite...
通过以上策略,我们可以有效地在Android的多线程环境中管理SQLite数据库,防止“database locked”问题的发生。在实践中,应根据具体的应用场景和需求选择合适的解决方案,以保证应用的稳定性和性能。
SQLite Database Browser 是一款专为Mac OS设计的直观易用的数据库管理工具,它专注于处理SQLite数据库文件。SQLite是一种轻量级、自包含的数据库引擎,广泛应用于移动设备、嵌入式系统以及桌面应用中,因为它不需要...
SQLite Database Browser 2.0 b1.app.zip 是一个压缩包,包含了SQLite Database Browser的特定版本——2.0 beta 1的应用程序。SQLite Database Browser是一款直观的图形用户界面(GUI)工具,专门设计用于管理和操作...
从标题《SQLite Database System Design and Implementation》以及提供的部分内容来看,本书的核心知识点包括: 1. 关系型数据库管理系统(RDBMS)的基本概念:本书在开头部分回顾了关系型数据库的一些基础概念,...
如果多线程同时读写(这里的指不同的线程用使用的是不同的Helper实例),后面的就会遇到android.database.sqlite.SQLiteException: database is locked这样的异常。对于这样的问题,解决的办法就是keep single ...
在使用SQLite Database Browser时,首先需要了解SQLite的基本概念,如数据库(Database)、表(Table)、列(Column)、记录(Row)以及SQL语言的基础知识。SQL(Structured Query Language)是用于管理关系数据库的...
SQLite Database Browser是一款功能强大的、免费开源的SQLite数据库管理工具,专为Windows用户设计。它允许用户在无需深入了解SQL语法的情况下创建、编辑和管理SQLite数据库。SQLite本身是一个轻量级的、自包含的、...
`SQLiteDatabaseBrowser`是一款专为SQLite数据库设计的轻量级图形用户界面(GUI)客户端工具。这个工具的主要目的是为了方便非技术用户以及开发者能够轻松地创建、查看、修改和管理SQLite数据库。SQLite本身是一种...
SQLite数据库编辑工具SQLiteDatabaseBrowser是一款强大的开源工具,专为管理和编辑SQLite数据库而设计。SQLite是一种轻量级的、自包含的、无服务器的、事务性的SQL数据库引擎,广泛应用于移动设备、嵌入式系统以及...
SQLite Database Browser是一款强大的开源工具,专门用于管理和操作SQLite数据库。SQLite是一种自包含、无服务器、零配置、事务型的SQL数据库引擎,广泛应用于嵌入式系统和个人计算机应用程序中,因为它轻量级且无需...
SQLite Database Browser 2.0 是一个专为mac用户设计的SQLite数据库管理工具,它提供了直观且易用的界面,使得数据库的浏览、管理和操作变得轻松。对于那些在Android开发中处理SQLite数据库的开发者来说,这个工具...
该工具主要用于浏览和编辑 SQLite 数据库,它兼容标准的 SQLite 2.x 和 3.x 数据库。SQLite Browser 的功能强大,用户界面友好,使得数据库的管理变得简单易行。此外,SQLite Browser 项目在 GitHub 上开源,欢迎...
SQLite Database Browser是一款强大的开源工具,专门用于管理和操作SQLite数据库。SQLite是一种自包含、无服务器、事务性的SQL数据库引擎,广泛应用于移动设备、嵌入式系统以及桌面应用中,尤其是在Android平台上,...
SQLite Database 是一种轻量级的、开源的、自包含的桌面数据库系统,它无需服务器进程,可以直接在用户的应用程序中使用。这个工具以其高效、可靠和易于集成的特点,被广泛应用于各种小型到中型的数据存储需求,尤其...
"Mike T's SQLite Database App"是专为SQLite数据库设计的一款管理工具,类似于SQL Server企业管理器,但专注于SQLite数据库的管理和操作。这款应用提供了一个直观的界面,使得用户能够方便地执行SQL语句,进行数据...