Re: DB Exeptions and DataObject
| From: | Alan Knowles | Date: | Tue, 12 Oct 2004 04:03:12 +0000 |
| Subject: | Re: DB Exeptions and DataObject | ||
| References: | 1 2 | Groups: | php.pear.general |
| Request: | Send a blank email to pear-general+get-14864@lists.php.net to get a copy of this message | ||
debug not showing the error has been fixed in CVS (an maybe the last release - I cant remember)
Regards
Alan
Justin Patrin wrote:
On Mon, 11 Oct 2004 16:45:56 +0200 (MEST), kundert@mysunrise.ch <kundert@mysunrise.ch> wrote:Hi I'v got a big understanding problem with DataObject and Database Exceptions (e.g. Unique Key violation, wrong atribute name and so on). If an exception raise after calling ->find() because of an invalid SQL, no error will occoure, even in debug mode not! The method find() execute the folling statement: $this-_query('SELECT ' . $this-_query['data_select'] . ' FROM ' . ($quoteIdentifiers ? $DB-quoteIdentifier($this-__table) : $this-__table) . " " . $this-_join . $this-_query['condition'] . ' '. $this-_query['group_by'] . ' '.First of all, DB doesn't use Exceptions, it uses PEAR_Error for now. If DB_DataObject isn't handling that error condition maybe it should. But if you really want to see if there are any PEAR errors, set a callback at the beginning of your script. function handlePearError($err) { die($err->getMessage()."<br/>\n".$err->getUserInfo()); } PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'handlePearError');$this-_query['having'] . ' '.$this-_query['order_by'] . ' '. In case of an error, _query() returns an Pear Error object, but it goes to nowhere. No error occoure, it looks like the query doesn't return a row, because there is no data. How can I find out, if there was an SELECT error or the query returns no error?