我无法看到我的Sql错误。它会削减我的查询,除了通知存在错误之外,错误毫无意义。 喜欢 声明中的错误“select * from o ..”
如何获得完整查询,以便我可以调查错误是如何发生的?
我之前写了一个sql函数,如果sql有错误则抛出调试字符串。我虽然有需要,但应该存在代码:
if(($error = mysql_error($conn)){
$cagiri=debug_backtrace();
$i=count($cagiri);
并说
[Caller__Function__] => dbSave
[Caller__Class__] => classBasic
[Arguments] => Array
(
[0] => function : loadLinks
[1] =>
[1] => sql error: Duplicate entry 'http://www.istanbulboncugu.com/Lokma' for key 'url'
[2] => query: insert into downloadLinks set `title`= 'Lokma : İstanbul - Avrupa', `url`= 'http://www.istanbulboncugu.com/Lokma', `site`= 'rssSehirFirsati', `status`= 'new'
所以我不挖掘30个查询,如果有错误, 错误字符串显示组成查询的函数。等等。 我认为Zend缺乏那种意识。 我知道zend不喜欢用硬盘和日志路径来对付聪明的方式吗?!?
答案 0 :(得分:2)
如果出现错误,我会开始使用该代码。
function results($q){
$results = Array();
try{
$results = $this->_db->query($q)->fetchAll();
}catch(Exception $e){
var_dump($q);
die($e->getMessage());
}
return $results;
}
答案 1 :(得分:1)
如果您使用的是Zend_Db_Select,则可以通过
获取完整创建的查询$select->__toString();
在回复您的评论时,您可以通过以下方式获取SQL错误消息:
try {
$this->db->insert('Users', $array );
} catch (Exception $e){
echo $e->getMessage();
}