Wie Sie verhindern, dass SQLITE SQLSTATE[HY000] [14]?
Erhalte ich manchmal die folgende Fehlermeldung:
SQLSTATE[HY000] [14] unable to open database file
Öffne ich die Software-Plattform durch die Verwendung von
new PDO("sqlite:database/datbase.db","","",array(
PDO::ATTR_PERSISTENT => true
));
jedesmal, wenn ich will, Lesen oder schreiben von Daten aus oder in die Datenbank. Das offene Verfahren ist die folgende Funktion:
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();
}
}
Nach einiger Zeit (manchmal mehr als eine Stunde, manchmal nach einigen Minuten bekomme ich die Fehlermeldung am Anfang der post. Wie kann ich verhindern, dass solche Fehler?
Haben Sie verwenden, um eine dauerhafte Verbindung?
InformationsquelleAutor Irgendw Pointer | 2014-09-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist ein Fehler von SQLlite :
#define SQLITE_CANTOPEN 14 /* Unable to open the database file */
Scheint es, wie, die Sie geöffnet haben zu viele verbindungen, ich schlage vor, Sie, die Verbindung erneut verwenden, wenn es geöffnet ist.
Erstellen Sie eine Eigenschaft:
Und überprüfen, ob es null ist, bevor ein neues Objekt erstellen:
InformationsquelleAutor meda
Wenn jemand die gleiche Nachricht während der Wiederverwendung der PDO-Verbindung und immer noch Probleme haben, könnte es sein, weil Sie die Speicherung von Bildern erhalten Sie von fopen() und vergessen die fclose () - Anweisung. In diesem speziellen Fall, die Fehlermeldung ist wirklich irreführend.
Hier ist eine Frage, mit der gleichen Fehlermeldung, die ich es geschafft, zu lösen nach ein paar Tagen der Fehlersuche.
SQLSTATE[HY000] [14] : kann Datenbank nicht öffnen, da zu viele verbindungen sind bereits geöffnet
InformationsquelleAutor user2700551
Sehr seltsam, aber für mich war dies verursacht durch nicht einwickeln der neue PDO-Anweisung in einem try/catch-block.
InformationsquelleAutor Ayub