Apache stürtzt bei Query ab

queicherius

♥ PHP ♥
Hey liebes Forum,

(nicht sicher in welches Unterforum das hier jetzt reinpasst, bitte verschieben wenns nicht passt, sorry)

nachdem ich bei meinem Problem auch mit fleißigem Googlen nicht weiterkomme versuche ich mal hier eine Lösung zu erfahren.

Eckdaten:
PHP 5.3.8
ZF 1.11.11
XAMPP 1.7.7

Ich bin gerade dabei mittels Zend Framework ein kleines Forensystem zu programmieren. Soweit funktioniert auch alles.

Nun gibt es wie bei einem Forum üblich ein Feld, in das ein Post eingetragen werden kann.

Mein Problem:
Sobald in dieses Feld ein Wert, der größer ist als ca. 300 Zeichen, eingetragen wird stürzt der Apache ab. (Chrome: Fehler 101 (net::ERR_CONNECTION_RESET): Verbindung wurde zurückgesetzt.) Im Programm selbst befindet sich aber kein Fehler, kleiner als 300 Zeichen funktioniert alles!

Ein die(); direkt vor dem Query gibt auch die gewünschte Ausgabe, ein die danach wird nicht mehr ausgeführt.

Der Fehler muss also bei Ausführen von folgendem Query passieren:
PHP:
$this->db->query("INSERT INTO forum_post					         
                  (user_id, forum_topic_id, content, timestamp)
                  VALUES						  		 
                  (".$userId.", ".$topicId.", '".$content."', NOW())");

($this->db ist dabei ein Zend_Db Objekt, aber das tut eigentlich nix zur Sache)

Im Apache error.log befindet sich auch ein interersanter Fehler:

Code:
[Mon May 21 13:50:52 2012] [notice] Parent: child process exited with status 3221225725 -- Restarting.

Ein umstellen des Adapters von PDO_MYSQL auf MYSQLI bringt nichts (außer den gleichen Fehler im Log).

Hat irgendjemand eine Idee wie sich das lösen lässt? Oder an was das Problem überhaupt liegt?!

Ich verbleibe verwirrt und hoffend :)
~queicherius
 
Hi,

scheint ein PHP-Bug zu sein:
https://bugs.php.net/bug.php?id=29107

Probier mal den Fix vom 2004-08-13 aus:
Open the file lib/pear/Date/TimeZone.php in a text editor. Go to line 247. You should be in a function named 'inDaylightTime()'. Add this line: return date("I"); at the very top of the function. It should now look like this:
PHP:
    function inDaylightTime($date)
    {
        return date("I");
        $env_tz = "";
        if(getenv("TZ"))
            $env_tz = getenv("TZ");
        putenv("TZ=".$this->id);
        $ltime = localtime($date->getTime(), true);
        putenv("TZ=".$env_tz);
        return $ltime['tm_isdst'];
    }

Ansonsten würde ich evtl auf ne Exception tippen die durch den Datenbankaufruf geworfen und nicht gefangen wird.

// Edit: Vielleicht hilft dir dieser Thread weiter.

Grüße,
BK
 
Zuletzt bearbeitet:
Heyho,

erstmal danke, dass jemand meinen Schrei nach Hilfe gehört hat.

Den Fix hab ich auch schon ausprobiert - hat leider gar keine Veränderung bewirkt.

Ich hab jetzt ein wenig an meinem Code rumexperimentiert: wenn ich das Feld "content" aus dem Query rausnehme funktioniert es tadellos.

Das Query im phpmyadmin ausgeführt klappt (auch mit content).

Das Query mit einem schnell hingeschusterten mysql_query klappt auch.

Also liegt das ganze wohl an der query Funktion der Zend_Db... laut deinem Link könnte es ja sein, dass das ganze an ner Rekursion liegt, dann schau ich mir mal die Klasse von denen an.

Zur Not muss es halt eine eigene DB-Klasse richten :/

Grüße
~queicherius
 

Neue Beiträge

Zurück