php异常:如何包含有关有问题的sql查询的更多信息

php异常:如何包含有关有问题的sql查询的更多信息,php,mysql,zend-framework,exception,Php,Mysql,Zend Framework,Exception,好吧,这就像是我第一千次从php异常中得到一些无用的信息。它总是这样: Message: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '))' at line 1

好吧,这就像是我第一千次从php异常中得到一些无用的信息。它总是这样:

Message: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '))' at line 1

Stack trace:

#0 /usr/share/php5/Zend/Db/Statement.php(300): Zend_Db_Statement_Pdo->_execute(Array)
#1 /usr/share/php5/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#2 /usr/share/php5/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('UPDATE `product...', Array)
#3 /usr/share/php5/Zend/Db/Adapter/Abstract.php(634): Zend_Db_Adapter_Pdo_Abstract->query('UPDATE `product...', Array)
#4 /usr/share/php5/Zend/Db/Table/Abstract.php(1132): Zend_Db_Adapter_Abstract->update('products', Array, 'shop = '1' AND ...')
#5 /var/www/simira/html/application/models/DbTable/Products.php(250): Zend_Db_Table_Abstract->update(Array, 'shop = '1' AND ...')
#6 /var/www/simira/html/application/controllers/ShopsController.php(567): Application_Model_DbTable_Products->updatePriceByShopCategories(Array, '1')
#7 /var/www/simira/html/application/controllers/ShopsController.php(597): ShopsController->processGlobalChangeRequest('Price', 'Products')
#8 /usr/share/php5/Zend/Controller/Action.php(516): ShopsController->globalChangePriceAction()
#9 /usr/share/php5/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('globalChangePri...')
#10 /usr/share/php5/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#11 /usr/share/php5/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#12 /usr/share/php5/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#13 /var/www/simira/html/public/index.php(29): Zend_Application->run()
#14 {main}

我现在真正需要看到的是查询。如何将此信息包含到抛出的异常中?我是否可以使查询在
查询('updateproduct…',Array)
中不被截断?我想知道是否有一种解决方案可以在全球范围内应用。如果有帮助的话,我会使用Zend Framework。

Zend Framework包括一个很棒的DB profiler界面

我个人最喜欢的是FireHP实现。这将在Firebug控制台中显示完整的查询信息


您还可以启用MySQL查询日志记录。看

哇,看起来比我想象的容易。有没有可能在chrome下使用这个功能?@clime我没有试过任何一个,但你可以试一个Thx,我会尝试在chrome下设置它,如果不可能,我会使用firefox。嘿,去chrome。我刚刚在application.ini中添加了这两行代码:
resources.db.params.profiler.enabled=true
resources.db.params.profiler.class=Zend\u db\u profiler\u Firebug
,它的工作非常出色。我放弃了firefox,因为它会吞噬内存,但看起来他回来了!呃,等等。导致异常的查询不会显示在控制台中。没有更新,只有三个选择。如何显示更新查询?您的应用程序没有引发异常,您有语法错误(看起来像引号)。这似乎发生在应用程序\模型\数据库\产品->UpdatePriceShopCategories(数组,'1')中。很可能在生成查询时需要使用->quoteInto(),或者至少需要使用此查询。该错误是由条件中的无效逻辑引起的。我在任何地方都使用quote/quoteInto。但是thx.生成的查询结果包含
WHERE columnName IN()
。很高兴您找到了它,有时调试sql是一个真正的难题。然而,当剖析器实际工作时,它是很棒的。