How to prevent SQLITE SQLSTATE[HY000] [14]?

前端 未结 3 1314
孤城傲影
孤城傲影 2020-12-11 10:03

I receive sometimes the following error:

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

I open the datebase by using

<
3条回答
  •  一整个雨季
    2020-12-11 10:13

    This is an error from SQLlite :

    #define SQLITE_CANTOPEN 14 /* Unable to open the database file */

    It seems like you have opened to many connections, I suggest you to reuse the connection if it is open.

    Create a property:

    private $pdo;
    

    And check if it's null before creating a new object:

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

提交回复
热议问题