2012-11-14 10 views
5

W moim skryptu PHP biegnę instrukcję aktualizacji w następujący sposób:Jak zdobyć więcej informacji na temat tego błędu PDO MySQL z Zend

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

Uchwyt db jest Zend_Db_Adapter_Abstract instancja (odmiany PDO MySQL).

Problem polega na tym, że aktualizacja się nie udaje i nie mogę uzyskać więcej informacji o błędzie.

Błąd występuje w bloku try/catch. Kiedy złapać błąd, uruchom:

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

a wyjście jest:

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 
     (
     ) 

wiem, że mówi nie parametry są związane, ale ja naprawdę nie sądzę, że to przypadek. Myślę, że jakoś "ostatnie zapytanie" nie jest tym, czym myślę, że jest.

Po drugie, kiedy złapać błąd ja również uruchomić:

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

a wyjście jest:

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

Oczywiście nie jest to bardzo pomocne.

Wszelkie pomysły? Jak mogę uzyskać więcej informacji na temat błędu?

Dzięki!

Odpowiedz

1

Można wymusić PDO rzucać wyjątki wszelkich informacji:

<?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

Nice one Ivan, dzięki. –

Powiązane problemy