我最近将我的一个PHP应用程序从MySQL移植到SQLite,以便更容易管理。出于某种原因,我可以从PHP访问sqlite数据库并且它工作得很好,但如果我尝试用其他东西打开它,比如sqlitemanager或sqlite firefox插件,数据库看起来只是空白,或者它不会打开它
有什么想法吗?
答案 0 :(得分:2)
Sqlite可用于(至少)两个主要版本,即2和3,它们是不兼容的。也许php和其他客户端之间存在一些不匹配。例如。 sqlite_
前缀函数使用过时的版本2,而Sqlite3是当前版本3的正确php类。
答案 1 :(得分:0)
答案 2 :(得分:0)
似乎问题是PHP没有在PHP脚本结束时关闭数据库。据我所知,PHP会在脚本结束时自动关闭mySQL连接。对于sqlite,它不会做同样的事情。因此,您不需要显式关闭mySQL连接,但由于Sqlite实际上是一个文件句柄,因此您需要显式关闭它。有人可以证实这一点我确定吗?
答案 3 :(得分:0)
PHP也会自动关闭SQLite连接。 我同意mtvee它可能是版本。在2和3之间存在非常大的差异.PDO可以同时执行这两项操作,但默认情况下需要3。您可以将2和3与单独的类(不使用PDO)一起使用:新的SqliteDatabase('db.sqlite2')和新的Sqlite3('db.sqlite3')。 我非常推荐使用PDO(和标准版本3)。