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);
}
}
}
Verwandte Vorgänge |
---|