1
0
mirror of https://github.com/dg/dibi.git synced 2025-08-05 05:37:39 +02:00

- added parameter $name in dibi::getConnection()

- bug fixed error handling in SQlite driver
This commit is contained in:
David Grudl
2007-04-06 07:34:48 +00:00
parent 53178717ad
commit 89ee302927
4 changed files with 24 additions and 20 deletions

View File

@@ -14,11 +14,11 @@
* @license GNU GENERAL PUBLIC LICENSE v2
* @package dibi
* @category Database
* @version 0.7f $Revision$ $Date$
* @version 0.7g $Revision$ $Date$
*/
define('DIBI', 'Version 0.7f $Revision$');
define('DIBI', 'Version 0.7g $Revision$');
if (version_compare(PHP_VERSION , '5.0.3', '<'))
@@ -188,17 +188,25 @@ class dibi
/**
* Retrieve active connection
*
* @param string connection registy name
* @return object DibiDriver object.
* @throw DibiException
*/
static public function getConnection()
static public function getConnection($name=NULL)
{
if ($name === NULL) {
if (!self::$conn)
throw new DibiException('Dibi is not connected to database');
return self::$conn;
}
if (!isset(self::$registry[$name]))
throw new DibiException("There is no connection named '$name'.");
return self::$registry[$name];
}
/**
@@ -210,11 +218,7 @@ class dibi
*/
static public function activate($name)
{
if (!isset(self::$registry[$name]))
throw new DibiException("There is no connection named '$name'.");
// change active connection
self::$conn = self::$registry[$name];
self::$conn = self::getConnection($name);
}

View File

@@ -29,8 +29,7 @@ class DibiSqliteDriver extends DibiDriver
private
$conn,
$insertId = FALSE,
$affectedRows = FALSE,
$errorMsg;
$affectedRows = FALSE;
public
$formats = array(
@@ -75,8 +74,7 @@ class DibiSqliteDriver extends DibiDriver
{
$this->insertId = $this->affectedRows = FALSE;
$this->errorMsg = '';
$res = @sqlite_query($this->conn, $sql, SQLITE_ASSOC, $this->errorMsg);
$res = @sqlite_query($this->conn, $sql, SQLITE_ASSOC);
if ($res === FALSE) return FALSE;
@@ -125,9 +123,10 @@ class DibiSqliteDriver extends DibiDriver
public function errorInfo()
{
$code = sqlite_last_error($this->conn);
return array(
'message' => $this->errorMsg,
'code' => NULL,
'message' => sqlite_error_string($code),
'code' => $code,
);
}

View File

@@ -36,6 +36,7 @@ class DibiException extends Exception
{
$this->dbError = $dbError;
$this->sql = $sql;
parent::__construct($message);
}
@@ -57,7 +58,7 @@ class DibiException extends Exception
$s = parent::__toString();
if ($this->dbError) {
$s .= "\nERROR: ";
$s .= "\n\nDatabase error: ";
if (isset($this->dbError['code']))
$s .= "[" . $this->dbError['code'] . "] ";

View File

@@ -1 +1 @@
Dibi Version 0.7f
Dibi Version 0.7g