2012-11-14 4 views
5

In meinem PHP-Skript bekomme ich eine Update-Anweisung wie folgt durchgeführt:finden wir weitere Informationen zu diesem PDO MySql Fehler mit Zend

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

Der db Griff eine Zend_Db_Adapter_Abstract Instanz (der PDO MySql Sorte).

Das Problem ist, dass das Update fehlschlägt und ich kann nicht scheinen, mehr Informationen über den Fehler zu erhalten.

Der Fehler tritt innerhalb eines try/catch-Blocks auf. Wenn ich den Fehler fangen, laufen I:

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

Und der Ausgang ist:

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

Ich weiß, es sagt sind keine Parameter gebunden, aber ich glaube wirklich nicht, dass der Fall ist. Ich denke, dass "letzte Anfrage" irgendwie nicht das ist, was ich denke.

Zweitens, wenn ich den Fehler fangen Ich betreibe auch:

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

Und der Ausgang ist:

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

Offensichtlich ist dies nicht sehr hilfreich.

Irgendwelche Ideen? Wie kann ich mehr Informationen über den Fehler erhalten?

Danke!

Antwort

1

Sie können PDO zwingen Ausnahmen zu werfen mit allen Infos:

<?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, danke. –

Verwandte Themen