Mailinglisten-Archive |
Michael Siebert wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > hallo liste > > ich benutze ein einem projekt die wunderschöne pear-klasse DB und ihre > "abkömmlinge". > da ich in der entwicklung ja zwangsläufig auch mal fehler in mysql-statements > habe, habe ich ein kleines problem... das ist nämlich, dass die klasse bei > fehlern die mysql zurück gibt zwar wunderbare informationen zur > zurückverfolgung liefert (dank pear:error) aber mir halt im normalfall nicht > anzeigt, dass es einen fehler gibt, was ja in der produktion nicht falsch > ist. klar könnte ich jetzt jedem query ein > > if (DB::is_error($ret)) { > ..} > > folgen lassen allerdings sind mir das ehrlich gesagt zu viele queries um das > da überall hinzuschreiben. es gibt zwar die option debug in einer dann hast du wohl bei der Planung einige Fehler gemacht? ;) > setOptions-methode von DB aber da die nicht dokumentiert ist, was da was > bedeutet, ist die für mich nutzlos.. use the source... > nun is meine frage im prinzip nur, wie ich die klasse dazu bringe, mir > automagisch mitzuteilen wenn eine db transaktion nich so ging wie ich > wollte... > habt ihr da ne idee oder ein rtfm mit passender url für mich? (in dem pear man > hab ich nix gefunden) > - -- > MfG > Michael Siebert Wie gesagt, da pear spärlich dokumentiert ist, use the source. Habe mir mit pear::DB eine Mantelklasse gebastelt, die so ziemlich alles aus der DB holt. Da kann man dann wunderbar sein eigenes error_reporting verwenden. Bei einigen Fehlern kann dir dann evtl. perror helfen. Wieso du allerdings pear::DB einsetzt, wenn deine App nur unter MySQL läuft ist mir fraglich. Wenn du ohne eigenen Wrapper arbeitest, dann musst du unten noch $connID global einführen oder 'ne Referenz mitgeben. Gruss, Gerd function errorHandle( $res, $query="" ){ //SOME ERROR CODES : //ALL : -1 = UNKNOWN ERROR //MYSQL : -5 = DUPLICATE PRIMARY KEY, MESSAGE = already exists //MYSQL : -19 = NO SUCH FIELD; CHECK FIELD-LIST empty( $query ) ? $query = $this->connID->last_query : $query = $query; $val = $res->getMessage(); $code = $res->getCode(); $type = $res->getType(); $info = $res->getUserInfo(); $errstr = $res->toString(); $callback = $res->getCallback(); $mode = $res->getMode(); if( $this->onErrorDie === true ) die( $val . "<br/>QUERY : " . $query ); else{ if( $this->echoOut === true ) echo $query . "<br/>"; else return $query; } } -- # Gerd Terlutter | Müller+Blanck Software GmbH # # office:+49 40 500 171-1| http://www.mplusb.de #
php::bar PHP Wiki - Listenarchive