Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour, dans elc adre d'un développement AJAX j'utilise la fonction update : mais quand y'a une erreur , impossible de debugger car le message d'exception n'affiche pas la requete
Question comment afficher la requête SQL ?
try{ $this->pages->update($arrData,$strWhere); echo 1;} catch(Zend_Exception $e){ WXC_Log::log($e);echo 0;}
exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0' for key 1' in D:\aa_work\dev\neopublish\test\zend\ZendFramework-1.7.0PR\ZendFramework-1.7.0PR\library\Zend\Db\Statement\Pdo.php:238 Stack trace: #0 D:\aa_work\dev\neopublish\test\zend\ZendFramework-1.7.0PR\ZendFramework-1.7.0PR\library\Zend\Db\Statement.php(284): Zend_Db_Statement_Pdo->_execute(Array) #1 D:\aa_work\dev\neopublish\test\zend\ZendFramework-1.7.0PR\ZendFramework-1.7.0PR\library\Zend\Db\Adapter\Abstract.php(430): Zend_Db_Statement->execute(Array) #2 D:\aa_work\dev\neopublish\test\zend\ZendFramework-1.7.0PR\ZendFramework-1.7.0PR\library\Zend\Db\Adapter\Pdo\Abstract.php(220): Zend_Db_Adapter_Abstract->query('UPDATE `Novapag...', Array) #3 D:\aa_work\dev\neopublish\test\zend\ZendFramework-1.7.0PR\ZendFramework-1.7.0PR\library\Zend\Db\Adapter\Abstract.php(551): Zend_Db_Adapter_Pdo_Abstract->query('UPDATE `Novapag...', Array) #4 D:\aa_work\dev\neopublish\test\zend\ZendFramework-1.7.0PR\ZendFramework-1.7.0PR\library\Zend\Db\Table\Abstract.php(905): Zend_Db_Adapter_Abstract->update('Novapages', Array, 'id=101') #5 D:\aa_work\dev\neopublish\test\zend\cms\WXC_cms\application\default\controllers\PageController.php(102): Zend_Db_Table_Abstract->update(Array, 'id=101') #6 D:\aa_work\dev\neopublish\test\zend\ZendFramework-1.7.0PR\ZendFramework-1.7.0PR\library\Zend\Controller\Action.php(494): PageController->saveAction() #7 D:\aa_work\dev\neopublish\test\zend\ZendFramework-1.7.0PR\ZendFramework-1.7.0PR\library\Zend\Controller\Dispatcher\Standard.php(285): Zend_Controller_Action->dispatch('saveAction') #8 D:\aa_work\dev\neopublish\test\zend\ZendFramework-1.7.0PR\ZendFramework-1.7.0PR\library\Zend\Controller\Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #9 D:\aa_work\dev\neopublish\test\zend\cms\WXC_cms\index.php(19): Zend_Controller_Front->dispatch() #10 {main}
Hors ligne
A priori tu cherches à mettre un id à 101 et la valeur 101 pour l'id existe déjà dans ta table.
Sur le champs id, tu dois avoir une clé primaire ou une contrainte d'unicité, donc Mysql râle en disant la valeur 101 existe déjà pour l'id.
A+, Philippe
PS : pour débugger et afficher tes requêtes, tu peux regarder du coté de Zend_Db_Profiler dans la doc. Il y a aussi quelques threads sur z-f qui en parlent.
Hors ligne
Voici comment récupérer une requete SQl :
$MonInstance = new MaClasseDbTable() $select = $MonInstance->select(); $sql = $select->query()->getDriverStatement()->queryString;
Hors ligne