Erhalte zahlreiche Ergebnisse in meinen Fehlerprotokollen wie dem unten aufgelisteten. Alle Tabellen in der Datenbank sind innodb und soweit es eine Interaktion mit diesen Tabellen gibt, ist alles pdo mit vorbereiteten Anweisungen.
Wie ich schon sagte, sind alle Fehler fast identisch mit denen, die unten aufgelistet sind, aber für ein paar verschiedene Seiten. Unabhängig von der Seite zeigt die Fehlerzeile IMMER auf den Punkt, an dem ich eine neue Anweisung starte ... zum Beispiel $stmt = $db->prepare("........
Die Anweisungen selbst funktionieren tadellos ohne Fehler, daher bin ich etwas verwirrt, was das verursacht.
Mehrere Fehler wie diese für verschiedene Seiten:
[25-Sep-2014 10:19:09 America / Chicago] Fehler beim Verbinden mit der Datenbank: SQLSTATE [HY000] [2002] Ressource vorübergehend nicht verfügbar [25-Sep-2014 10:19:09 America / Chicago] PHP Schwerwiegender Fehler: Aufruf einer Memberfunktion prepare () auf ein Nicht-Objekt in /home/test/public_html/add_log.php on Zeile 28
Beispiel stmt den Fehler zeigt auf - in diesem Fall $stmt = $db->prepare("
Zeile spezifisch. Es zeigt immer auf die Zeile, die eine neue vorbereitete Anweisung startet.
Skript verbinden:
%Vor%Dinge, die mir in den Sinn gekommen sind:
Dieses spezielle Skript läuft oft ... manchmal kann es in einer Sekunde mehrmals aufgerufen werden.
Auf dieser Seite verwende ich das gleiche Format für alle meine vorbereiteten Anweisungen ... $ stmt = ... $ result oder $ results = ... Ich schließe den Cursor jedoch nicht aus meiner Recherche heraus wird nicht benötigt, da der Treiber MySQL ist und dies automatisch gemacht wird.
Ich habe PDO :: ATTR_PERSISTENT in meinen Verbindungseinstellungen auf "true" gesetzt - würde das irgendeinen Einfluss auf diesen Fehler haben?
Was passiert hier mit all diesen Fehlern? Jeder?
BEARBEITEN - weitere Informationen:
Seitdem der obige Fehler aufgetreten ist, hat sich der Fehler in SQLSTATE[HY000] [2002] Connection timed out
geändert. Ist das tatsächlich ein Problem mit der Person / Comp Verbindung zu 'mir' oder tatsächlich ein Problem mit meinem Server / db?
EDIT 2:
Ist es möglich, dass meine Verwendung von $_SERVER['DOCUMENT_ROOT']
ein Problem verursacht? Da diese Datei so oft "getroffen" wird, benötigt sie das Verbindungsskript ebenso oft in der Zeile darunter. Ich benötige mein Verbindungsskript wie folgt auf jeder Seite, die es benötigt:
erfordert $ _SERVER ['DOCUMENT_ROOT']. '/ custom / functions / connect.php';
Ich werde @MrGomez Topic zu diesem Thema aufzeigen meistens kurz und doch beschreibend auf den von Ihnen angegebenen Fehler. Dies ist kein PDO-bezogenes Problem, sondern MySQL-spezifisch.
Allerdings sollten Ihre Protokolle mehr Informationen enthalten, damit Sie wissen, was passiert. Wie zum Beispiel, ob eine Datei gesperrt ist.
Es zeigt nicht wirklich auf diese Zeile.
Der Fehler in Ihrem Protokoll
[25-Sep-2014 10:19:09 America / Chicago] Verbindung zur Datenbank konnte nicht hergestellt werden: SQLSTATE [HY000] [2002] Ressource vorübergehend nicht verfügbar
sieht so aus, als würde es hier von der catch-Anweisung geschrieben:
%Vor% Hinweis: $db
wird nicht in der catch-Anweisung festgelegt.
Ihr Skript wird dann weiter ausgeführt, bis es die Zeile $db->prepare
erreicht. Da $db
null ist, gibt es einen weiteren Fehler aus, diesmal mit der Zeile der Datei.
Darüber hinaus - finden Sie in der Antwort von revo, warum Sie möglicherweise den Fehler "Ressource vorübergehend nicht verfügbar" erhalten.
Erhöhe deine max_connections
in my.cnf
:
Überprüfen Sie die für mysql verfügbaren Dateideskriptoren:
%Vor%Wenn der Standardwert 1024 ist, ändern Sie ihn auf 65535 oder mehr
%Vor%mysqld neu starten