SQL-Fehler in Magento debuggen: Vollständige SQL-Abfrage im Stack Trace anzeigen

Bei einem SQL-Fehler kann der Stack Trace von Magento in der Fehlerausgabe wie folgt aussehen:

#0 lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)
#1 lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#2 lib/Zend/Db/Statement.php(300): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#3 lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#4 lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT `a`.* FR...', Array)
#5 lib/Varien/Db/Adapter/Pdo/Mysql.php(419): Zend_Db_Adapter_Pdo_Abstract->query('SELECT `a`.* FR...', Array)
#6 lib/Zend/Db/Adapter/Abstract.php(825): Varien_Db_Adapter_Pdo_Mysql->query(Object(Varien_Db_Select), Array)

Die Information ist begrenzt hilfreich, da die Abfrage „SELECT `a`.* FR…“, die zu dem Fehler geführt hat, nicht ausgeschrieben wird.

Um die fehlerhafte Abfrage analysieren zu können, kann der Debug-Modus aktiviert werden, in dem die Variable $_debug in Varien_Db_Adapter_Pdo_Mysql auf true gesetzt wird. Die SQL-Abfrage wird dann in $_debugFile = ‚var/debug/pdo_mysql.log‘ gespeichert und kann weiter analysiert werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.