I receive sometimes the following error:
SQLSTATE[HY000] [14] unable to open database file
I open the datebase by using
new PDO("sqlite:database/datbase.db","","",array(
PDO::ATTR_PERSISTENT => true
));
everytime I want read or write data from or to the database. The open process is the following function:
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();
}
}
After some time (sometime more than an hour, some times after some minutes I get the error message at the beginning of the post. How can I prevent such error?
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();
}
}