Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 24-11-2008 09:39:02

erwanpia
Membre
Lieu: Locronan - Quimper
Date d'inscription: 16-10-2007
Messages: 18
Site web

SQL STATE : afficher requete

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 ?

Code:

      try{      $this->pages->update($arrData,$strWhere);      echo 1;}
      catch(Zend_Exception $e){    WXC_Log::log($e);echo 0;}

Code:

 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

 

#2 24-11-2008 10:38:20

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: SQL STATE : afficher requete

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.


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 27-06-2011 15:10:19

propolis
Membre
Date d'inscription: 03-05-2011
Messages: 14

Re: SQL STATE : afficher requete

Voici comment récupérer une requete SQl :

Code:

$MonInstance = new MaClasseDbTable()
$select = $MonInstance->select();

$sql =  $select->query()->getDriverStatement()->queryString;

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages