2012-11-14 9 views
5

で、このPDO MySQLエラーの詳細情報を取得するために、以下のように私は更新ステートメントを実行します。どのように私のPHPスクリプトでのZend

$this->_db->update('names', $data, $this->_db->quoteInto('id = ?', $obj->id)); 

デシベルハンドルは(PDO MySQLの品種の)はZend_Db_Adapter_Abstractのインスタンスです。

問題は、アップデートが失敗しているため、エラーに関する詳細情報が表示されないようです。

エラーはtry/catchブロック内で発生します。私は、エラーをキャッチすると、私が実行します。

$db->getProfiler()->getLastQueryProfile(); 

、出力は次のとおりです。

2012-11-14T22:20:02+11:00 INFO (6): Zend_Db_Profiler_Query Object 
(
    [_query:protected] => begin 
    [_queryType:protected] => 64 
    [_startedMicrotime:protected] => 1352892002.6064 
    [_endedMicrotime:protected] => 1352892002.6066 
    [_boundParams:protected] => Array 
     (
     ) 

私はそれが何のパラメータがバインドされていないと言うけど、私は本当にそれはケースだとは思いません。どういうわけか「最後の質問」は私が思うものではないと私は思う。

$db->getConnection()->errorInfo(); 

を、出力は次のとおりです:

第二に、私は、エラーをキャッチしたときに、私はまた、実行

2012-11-14T22:20:02+11:00 INFO (6): Array 
(
    [0] => 00000 
    [1] => 
    [2] => 
) 

は明らかにこれは非常に有用ではありません。

アイデア?エラーの詳細はどうすればわかりますか?

ありがとうございます!あなたはすべての情報と例外をスローするようにPDOを強制することができ

答えて

1

<?php 

$this->_db->->getConnection()->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 


try { 
    $this->_db->update('names', $data, $this->_db->quoteInto('id = ?', $obj->id)); 
} 
catch (Exception $ex) { 
    print_r($ex); 
} 
+0

ニース1イワン、感謝します。 –

関連する問題