Knowledgebase

Magento Fehler: User Error: DDL statements are not allowed in transactions in lib/Varien/Db/Adapter/Pdo/Mysql.php on line 399

Veröffentlicht von Boris Hinzer am 07.09.2013 10:28

Bei einer aktuellen Magento 1.7.0.2 Community Edition trat der folgende Fehler im Magento System.log ( var/log/system.log ) auf:

2013-01-08T09:25:35+00:00 ERR (3): User Error: DDL statements are not allowed in transactions  in lib/Varien/Db/Adapter/Pdo/Mysql.php on line 399

Nach ein wenig Recherche wurden wir im Magento Bugtracker fündig, wo als einfach Lösung empfohlen wurde die entsprechende Funktion, oder aber den Fehlerhinweis auszukommentieren. Nachdem wir die Datei lib/Varien/Db/Adapter/Pdo/Mysql.php wie folgt modifiziert hatten trat der Fehler nicht mehr auf:

    /**
     * Check transaction level in case of DDL query
     *
     * @param string|Zend_Db_Select $sql
     * @throws Zend_Db_Adapter_Exception
     */
    protected function _checkDdlTransaction($sql)
    {
        if (is_string($sql) && $this->getTransactionLevel() > 0) {
            $startSql = strtolower(substr(ltrim($sql), 0, 3));
            if (in_array($startSql, $this->_ddlRoutines)) {
//                trigger_error(Varien_Db_Adapter_Interface::ERROR_DDL_MESSAGE, E_USER_ERROR);
            }
        }
    }
(5 vote(s))
Dieser Artikel war hilfreich.
Dieser Artikel war nicht hilfreich.

Kommentare (0)
Kommentar schreiben
 
 
Vollständiger Name:
E-Mail:
Kommentare:
Sicherheitsüberprüfung 
 
Um Ihre Eingabe zu verifizieren schreiben Sie bitte den Text auf dem Bild in das nebenstehende Feld.

web-vision www.web-vision.de/support