ZendFramework, SQL und Segmentation Fault

Kommentieren Nov 03 2010

 

ZendFramework und lange DB Statements und das Problem mit dem preg_replace.

Das Problem hatte ich ja schon mal. Leider ist das in der aktuellen (1.11.0) Version immer noch so. Betrifft alles was länger als ungefähr 3000 Zeichen ist.
Nun lässt sich das aber nicht so einfach wie damals beheben.

Nach langem Suchen und Versuchen es zu fixen, kam ich zu dieser vermeintlichen Lösung:

$db->getConnection()->query($sql);



Leider funktionierte das nicht.

Nach ein wenig hin und her viel mir auf, dass dieses Problem nur auftritt wenn es sich im einen INSERT handelt. Nicht aber wenn es ein UPDATE Befehl ist.

Da kam dann der aha Effekt. Ich baute meinen INSERT Befehl einfach um, in dem
ich nur einen INSERT machte damit ich eine neue ID bekam. Diese konnte ich dann verwenden um die restlichen Daten ab zu speichern.

$db->query(INSERT);

$db->lastInsertId();

$db->getConnection()->query(UPDATE);



Somit lies sich das “Problem” beheben…

Die Bugs die das betrifft sind (unvollständig):
- http://framework.zend.com/issues/browse/ZF-10209
- http://framework.zend.com/issues/browse/ZF-10248
- http://framework.zend.com/issues/browse/ZF-5063