вывод ошибок в базе данных Zend - PullRequest
0 голосов
/ 22 октября 2010

Я не вижу свою ошибку в Sql. Он обрезает мои запросы, и ошибка не имеет смысла, за исключением того, что она сообщает об ошибке. подобно ошибка в утверждении "выбрать * из о .."

как мне получить полный запрос, чтобы я мог узнать, как произошла ошибка?

Ранее я написал функцию sql, которая выдает строку отладки, если в sql есть ошибка. Я думаю, что Zend'ers был нужен и должен существовать код:

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 запросов, если есть ошибка, Строка ошибки показывает функцию, которая составила запрос. И т.п. Я думаю, что у Зенда нет такого осознания. Я знаю, что Зенд не предпочитает жесткий и лог-путь против умных путей?!?

Ответы [ 2 ]

2 голосов
/ 25 октября 2010

Я начинаю использовать этот код, если есть ошибка.

function results($q){
  $results  = Array();
  try{
    $results =  $this->_db->query($q)->fetchAll();
  }catch(Exception $e){
    var_dump($q);
    die($e->getMessage());
  }
  return $results;
}
1 голос
/ 22 октября 2010

Если вы используете Zend_Db_Select, вы можете получить полностью созданный запрос, набрав

$select->__toString();

В ответ на ваш комментарий вы можете получить сообщение об ошибке SQL:

try {
    $this->db->insert('Users', $array );
} catch (Exception $e){
    echo $e->getMessage();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...