php - 如何防止 SQLITE SQLSTATE[HY000] [14]?

标签 php pdo sqlite persistent

我有时会收到以下错误:

SQLSTATE[HY000] [14] unable to open database file



我使用打开数据库
new PDO("sqlite:database/datbase.db","","",array(
    PDO::ATTR_PERSISTENT => true
));

每次我想从数据库读取或写入数据时。打开的过程是如下函数:
function opendatabase(){
try{
    return new PDO("sqlite:database/database.db","","",array(
        PDO::ATTR_PERSISTENT => true
    ));
}catch(PDOException $e){
    logerror($e->getMessage(), "opendatabase");
    print "Error in openhrsedb ".$e->getMessage();
}
}

一段时间后(有时一个多小时,有时几分钟后,我在帖子开头收到错误消息。如何防止此类错误?

最佳答案

如果有人在重用 PDO 连接时遇到相同的消息并且仍然有问题,那可能是因为您正在存储从 fopen() 获得的图像而忘记了 fclose() 语句。在这种特殊情况下,错误消息确实具有误导性。
这是我在几天的故障排除后设法解决的相同错误消息的问题。
SQLSTATE[HY000] [14] : can't open database because too many connections are already opened

关于php - 如何防止 SQLITE SQLSTATE[HY000] [14]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25668156/

相关文章:

php - 在 PHP 中递归查找组合

php - 使用 PHP/PDO 检查数据库表是否存在

php - 这个准备好的语句可以防止 SQL 注入(inject)吗?

ruby-on-rails - 用于嵌入式应用程序的 PostgreSQL 或 SQLite3

java - 警告 : Unclosed files for the types '[io.realm.OrderListRealmProxy]' ; these types will not undergo annotation processing

java - 无法观察空数据 - 带有 Livedata 的 MVVM

javascript - 如何为ajax响应中的所有<a>元素设置jquery函数

php - 如何在 Laravel 中使用多个数据库

php - 选择具有不同放置可能组合的字段值

php - 联合选择与变量,在 PHP 中与 PDO。怎么做才对?