tutorial - zend framework stack trace
zend framework tutorial (2)
Si desea ver la declaración SQL completa, puede usar Zend_Debug. Por ejemplo, si su instrucción sql está en la variable $ select y desea ver la instrucción sql completa, puede usar la siguiente línea de código:
Zend_Debug::Dump($select);
exit;
O si su código se crea con la clase Zend_Db_Table, puede usar:
$select = new Zend_Db_Select(Zend_Registry::get(''db''));
$select->from(''string'');
Zend_Debug::Dump($select->assemble());
exit;
Creo que la mejor manera de ver la declaración sql es mediante el uso de la función de creación de perfiles en la conexión de la base de datos. Esta es una combinación con la función de registro y el complemento firePHP para Firefox es mi configuración favorita.
Si usa la configuración MVC de Zend Framework esto se hace blanco en estas líneas de código:
// setup the database connection
$db = Zend_Db::factory(Zend_Registry::get(''config'')->database->adapter,Zend_Registry::get(''config'')->database->params);
// create a new profiler
profiler = new Zend_Db_Profiler_Firebug(''All DB Queries'');
// enable profiling (this is only recommended in development mode, disable this in production mode)
$profiler->setEnabled(true);
// add the profiler to the database object
$db->setProfiler($profiler);
// setup the default adapter to use for database communication
Zend_Db_Table_Abstract::setDefaultAdapter($db);
// register the database object to access it in other parts of the project
Zend_Registry::set(''db'',$db);
/**
*
* This part is optional
*
* You can use this logger to log debug information to the firephp add-on for Firefox
* This is handy for debugging but must be disabled in production mode
*
*/
// create logger
$logger = new Zend_Log();
// create firebug writer
$firebug_writer = new Zend_Log_Writer_Firebug();
// add writer to logger
$logger->addWriter($firebug_writer);
// register the logger object to access it in other parts of the project
Zend_Registry::set(''log'',$logger);
El add-on firebug (requisito para firephp) se puede encontrar en este sitio web: Firebug
El complemento de FirePHP se puede encontrar en este sitio web: FirePHP
Ivo Trompert
¿Hay alguna manera de hacer que el seguimiento de la pila muestre toda la declaración SQL generada cuando hay un error en lugar de solo los primeros caracteres?
Esto es lo que muestra actualmente
... / Zend / Db / Adapter / Pdo / Abstract.php (220): Zend_Db_Adapter_Abstract-> query (''UPDATE'' diction ... '', Array)
..y me gustaría ver la declaración de actualización completa antes de enviar a la base de datos para rastrear lo que está mal con él.
Gracias por la ayuda. SWK
mientras que el generador de perfiles es V cool - no ayuda a depurar cuando el sistema arroja una excepción ...
echa un vistazo a esta publicación sobre cómo dar un seguimiento de la pila más completo SQL completo
SÓLO PARA SER UTILIZADO EN ENVIRONMENTS DEV por razones obvias
http://www.edmondscommerce.co.uk/blog/zend-framework/zend-framework-more-detailed-stack-trace/