summaryrefslogtreecommitdiff
path: root/lib/adodb/adodb-exceptions.inc.php
diff options
context:
space:
mode:
authorNathan Kinkade <nath@nkinka.de>2008-03-16 20:42:30 +0000
committerNathan Kinkade <nath@nkinka.de>2008-03-16 20:42:30 +0000
commit6d0fbeb0a7fde0cc8bae6c9944ea6b017d96968a (patch)
tree7da954e7aaa5c7a78bd0c0cc6911f718670ea37a /lib/adodb/adodb-exceptions.inc.php
parent32482b90446a7974e4aa1a392a79f1c8e18ed200 (diff)
Moved some external packages into lib to make system more self contained
Diffstat (limited to 'lib/adodb/adodb-exceptions.inc.php')
-rw-r--r--lib/adodb/adodb-exceptions.inc.php82
1 files changed, 82 insertions, 0 deletions
diff --git a/lib/adodb/adodb-exceptions.inc.php b/lib/adodb/adodb-exceptions.inc.php
new file mode 100644
index 0000000..3eebc4e
--- /dev/null
+++ b/lib/adodb/adodb-exceptions.inc.php
@@ -0,0 +1,82 @@
+<?php
+
+/**
+ * @version V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
+ * Released under both BSD license and Lesser GPL library license.
+ * Whenever there is any discrepancy between the two licenses,
+ * the BSD license will take precedence.
+ *
+ * Set tabs to 4 for best viewing.
+ *
+ * Latest version is available at http://php.weblogs.com
+ *
+ * Exception-handling code using PHP5 exceptions (try-catch-throw).
+ */
+
+
+if (!defined('ADODB_ERROR_HANDLER_TYPE')) define('ADODB_ERROR_HANDLER_TYPE',E_USER_ERROR);
+define('ADODB_ERROR_HANDLER','adodb_throw');
+
+class ADODB_Exception extends Exception {
+var $dbms;
+var $fn;
+var $sql = '';
+var $params = '';
+var $host = '';
+var $database = '';
+
+ function __construct($dbms, $fn, $errno, $errmsg, $p1, $p2, $thisConnection)
+ {
+ switch($fn) {
+ case 'EXECUTE':
+ $this->sql = $p1;
+ $this->params = $p2;
+ $s = "$dbms error: [$errno: $errmsg] in $fn(\"$p1\")\n";
+ break;
+
+ case 'PCONNECT':
+ case 'CONNECT':
+ $user = $thisConnection->user;
+ $s = "$dbms error: [$errno: $errmsg] in $fn($p1, '$user', '****', $p2)\n";
+ break;
+ default:
+ $s = "$dbms error: [$errno: $errmsg] in $fn($p1, $p2)\n";
+ break;
+ }
+
+ $this->dbms = $dbms;
+ if ($thisConnection) {
+ $this->host = $thisConnection->host;
+ $this->database = $thisConnection->database;
+ }
+ $this->fn = $fn;
+ $this->msg = $errmsg;
+
+ if (!is_numeric($errno)) $errno = -1;
+ parent::__construct($s,$errno);
+ }
+}
+
+/**
+* Default Error Handler. This will be called with the following params
+*
+* @param $dbms the RDBMS you are connecting to
+* @param $fn the name of the calling function (in uppercase)
+* @param $errno the native error number from the database
+* @param $errmsg the native error msg from the database
+* @param $p1 $fn specific parameter - see below
+* @param $P2 $fn specific parameter - see below
+*/
+
+function adodb_throw($dbms, $fn, $errno, $errmsg, $p1, $p2, $thisConnection)
+{
+global $ADODB_EXCEPTION;
+
+ if (error_reporting() == 0) return; // obey @ protocol
+ if (is_string($ADODB_EXCEPTION)) $errfn = $ADODB_EXCEPTION;
+ else $errfn = 'ADODB_EXCEPTION';
+ throw new $errfn($dbms, $fn, $errno, $errmsg, $p1, $p2, $thisConnection);
+}
+
+
+?> \ No newline at end of file