加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2021-07-06 05:22:44 所属栏目:大数据 来源: https://www.jb51.cc
导读:我有时收到以下错误: sqlSTATE[HY000] [14] unable to open database file 我使用打开数据库 new PDO("sqlite:database/datbase.db","","",array( PDO::ATTR_PERSISTENT = true)); 每次我想从数据库读取数据或向数据库写入数据.打开过程是以下功能: functi

我有时收到以下错误:

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();
}
}

经过一段时间(某个时间超过一个小时,有些时候几分钟后我会收到帖子开头的错误信息.我怎样才能防止这样的错误?

解决方法:

这是来自sqllite的错误:

#define sqlITE_CANTOPEN 14 / *无法打开数据库文件* /

您似乎已经打开了许多连接,我建议您重新连接,如果它是打开的.

创建一个属性:

private $pdo;

在创建新对象之前检查它是否为null:

function opendatabase(){
    try{
        if($this->pdo==null){
          $this->pdo =new PDO("sqlite:database/database.db","","",array(
                PDO::ATTR_PERSISTENT => true
            ));
        }
        return $this->pdo;
    }catch(PDOException $e){
        logerror($e->getMessage(), "opendatabase");
        print "Error in openhrsedb ".$e->getMessage();
    }
}

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读