diff options
| author | Damien Regad <dregad@mantisbt.org> | 2013-08-05 13:56:24 +0200 |
|---|---|---|
| committer | Damien Regad <dregad@mantisbt.org> | 2013-08-05 13:56:24 +0200 |
| commit | 53010b5ceb548968e93c752defec085e7c508f4a (patch) | |
| tree | 332484926a4f961b6a12ca522f437e25bcace741 /adodb-exceptions.inc.php | |
| parent | 212c76c103997ef3aeb539517899ed42ddffdae4 (diff) | |
| download | adodb-53010b5ceb548968e93c752defec085e7c508f4a.tar.gz adodb-53010b5ceb548968e93c752defec085e7c508f4a.tar.bz2 adodb-53010b5ceb548968e93c752defec085e7c508f4a.zip | |
Reorg: ADOdb5 (master) branch
- Move all files in adodb5/ to root
- Remove adodb-for-php4/ directory
Diffstat (limited to 'adodb-exceptions.inc.php')
| -rw-r--r-- | adodb-exceptions.inc.php | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/adodb-exceptions.inc.php b/adodb-exceptions.inc.php new file mode 100644 index 00000000..f1986432 --- /dev/null +++ b/adodb-exceptions.inc.php @@ -0,0 +1,82 @@ +<?php + +/** + * @version V5.18 3 Sep 2012 (c) 2000-2012 John Lim (jlim#natsoft.com). 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 |
