mirror of
https://github.com/dg/dibi.git
synced 2025-08-06 22:26:43 +02:00
* renamed DibiDatabaseException to DibiDriverException
* PDO driver convert PDOExceptions to DibiDriverException
This commit is contained in:
@@ -76,11 +76,11 @@ class DibiMsSqlDriver extends NObject implements DibiDriverInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!is_resource($this->connection)) {
|
if (!is_resource($this->connection)) {
|
||||||
throw new DibiDatabaseException("Can't connect to DB");
|
throw new DibiDriverException("Can't connect to DB");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($config['database']) && !@mssql_select_db($config['database'], $this->connection)) {
|
if (isset($config['database']) && !@mssql_select_db($config['database'], $this->connection)) {
|
||||||
throw new DibiDatabaseException("Can't select DB '$config[database]'");
|
throw new DibiDriverException("Can't select DB '$config[database]'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,14 +103,14 @@ class DibiMsSqlDriver extends NObject implements DibiDriverInterface
|
|||||||
*
|
*
|
||||||
* @param string SQL statement.
|
* @param string SQL statement.
|
||||||
* @return bool have resultset?
|
* @return bool have resultset?
|
||||||
* @throws DibiDatabaseException
|
* @throws DibiDriverException
|
||||||
*/
|
*/
|
||||||
public function query($sql)
|
public function query($sql)
|
||||||
{
|
{
|
||||||
$this->resultset = @mssql_query($sql, $this->connection);
|
$this->resultset = @mssql_query($sql, $this->connection);
|
||||||
|
|
||||||
if ($this->resultset === FALSE) {
|
if ($this->resultset === FALSE) {
|
||||||
throw new DibiDatabaseException('Query error', 0, $sql);
|
throw new DibiDriverException('Query error', 0, $sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
return is_resource($this->resultset);
|
return is_resource($this->resultset);
|
||||||
|
@@ -106,7 +106,7 @@ class DibiMySqlDriver extends NObject implements DibiDriverInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!is_resource($this->connection)) {
|
if (!is_resource($this->connection)) {
|
||||||
throw new DibiDatabaseException(mysql_error(), mysql_errno());
|
throw new DibiDriverException(mysql_error(), mysql_errno());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($config['charset'])) {
|
if (isset($config['charset'])) {
|
||||||
@@ -115,7 +115,7 @@ class DibiMySqlDriver extends NObject implements DibiDriverInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isset($config['database']) && !@mysql_select_db($config['database'], $this->connection)) {
|
if (isset($config['database']) && !@mysql_select_db($config['database'], $this->connection)) {
|
||||||
throw new DibiDatabaseException(mysql_error($this->connection), mysql_errno($this->connection));
|
throw new DibiDriverException(mysql_error($this->connection), mysql_errno($this->connection));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->buffered = empty($config['unbuffered']);
|
$this->buffered = empty($config['unbuffered']);
|
||||||
@@ -140,7 +140,7 @@ class DibiMySqlDriver extends NObject implements DibiDriverInterface
|
|||||||
*
|
*
|
||||||
* @param string SQL statement.
|
* @param string SQL statement.
|
||||||
* @return bool have resultset?
|
* @return bool have resultset?
|
||||||
* @throws DibiDatabaseException
|
* @throws DibiDriverException
|
||||||
*/
|
*/
|
||||||
public function query($sql)
|
public function query($sql)
|
||||||
{
|
{
|
||||||
@@ -151,7 +151,7 @@ class DibiMySqlDriver extends NObject implements DibiDriverInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($errno = mysql_errno($this->connection)) {
|
if ($errno = mysql_errno($this->connection)) {
|
||||||
throw new DibiDatabaseException(mysql_error($this->connection), $errno, $sql);
|
throw new DibiDriverException(mysql_error($this->connection), $errno, $sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
return is_resource($this->resultset);
|
return is_resource($this->resultset);
|
||||||
@@ -264,7 +264,7 @@ class DibiMySqlDriver extends NObject implements DibiDriverInterface
|
|||||||
public function rowCount()
|
public function rowCount()
|
||||||
{
|
{
|
||||||
if (!$this->buffered) {
|
if (!$this->buffered) {
|
||||||
throw new DibiDatabaseException('Row count is not available for unbuffered queries');
|
throw new DibiDriverException('Row count is not available for unbuffered queries');
|
||||||
}
|
}
|
||||||
return mysql_num_rows($this->resultset);
|
return mysql_num_rows($this->resultset);
|
||||||
}
|
}
|
||||||
@@ -294,7 +294,7 @@ class DibiMySqlDriver extends NObject implements DibiDriverInterface
|
|||||||
public function seek($row)
|
public function seek($row)
|
||||||
{
|
{
|
||||||
if (!$this->buffered) {
|
if (!$this->buffered) {
|
||||||
throw new DibiDatabaseException('Cannot seek an unbuffered result set');
|
throw new DibiDriverException('Cannot seek an unbuffered result set');
|
||||||
}
|
}
|
||||||
|
|
||||||
return mysql_data_seek($this->resultset, $row);
|
return mysql_data_seek($this->resultset, $row);
|
||||||
|
@@ -95,7 +95,7 @@ class DibiMySqliDriver extends NObject implements DibiDriverInterface
|
|||||||
@mysqli_real_connect($this->connection, $config['host'], $config['username'], $config['password'], $config['database'], $config['port'], $config['socket'], $config['options']);
|
@mysqli_real_connect($this->connection, $config['host'], $config['username'], $config['password'], $config['database'], $config['port'], $config['socket'], $config['options']);
|
||||||
|
|
||||||
if ($errno = mysqli_connect_errno()) {
|
if ($errno = mysqli_connect_errno()) {
|
||||||
throw new DibiDatabaseException(mysqli_connect_error(), $errno);
|
throw new DibiDriverException(mysqli_connect_error(), $errno);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($config['charset'])) {
|
if (isset($config['charset'])) {
|
||||||
@@ -123,14 +123,14 @@ class DibiMySqliDriver extends NObject implements DibiDriverInterface
|
|||||||
*
|
*
|
||||||
* @param string SQL statement.
|
* @param string SQL statement.
|
||||||
* @return bool have resultset?
|
* @return bool have resultset?
|
||||||
* @throws DibiDatabaseException
|
* @throws DibiDriverException
|
||||||
*/
|
*/
|
||||||
public function query($sql)
|
public function query($sql)
|
||||||
{
|
{
|
||||||
$this->resultset = @mysqli_query($this->connection, $sql, $this->buffered ? MYSQLI_STORE_RESULT : MYSQLI_USE_RESULT);
|
$this->resultset = @mysqli_query($this->connection, $sql, $this->buffered ? MYSQLI_STORE_RESULT : MYSQLI_USE_RESULT);
|
||||||
|
|
||||||
if ($errno = mysqli_errno($this->connection)) {
|
if ($errno = mysqli_errno($this->connection)) {
|
||||||
throw new DibiDatabaseException(mysqli_error($this->connection), $errno, $sql);
|
throw new DibiDriverException(mysqli_error($this->connection), $errno, $sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
return is_object($this->resultset);
|
return is_object($this->resultset);
|
||||||
@@ -169,7 +169,7 @@ class DibiMySqliDriver extends NObject implements DibiDriverInterface
|
|||||||
public function begin()
|
public function begin()
|
||||||
{
|
{
|
||||||
if (!mysqli_autocommit($this->connection, FALSE)) {
|
if (!mysqli_autocommit($this->connection, FALSE)) {
|
||||||
throw new DibiDatabaseException(mysqli_error($this->connection), mysqli_errno($this->connection));
|
throw new DibiDriverException(mysqli_error($this->connection), mysqli_errno($this->connection));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -182,7 +182,7 @@ class DibiMySqliDriver extends NObject implements DibiDriverInterface
|
|||||||
public function commit()
|
public function commit()
|
||||||
{
|
{
|
||||||
if (!mysqli_commit($this->connection)) {
|
if (!mysqli_commit($this->connection)) {
|
||||||
throw new DibiDatabaseException(mysqli_error($this->connection), mysqli_errno($this->connection));
|
throw new DibiDriverException(mysqli_error($this->connection), mysqli_errno($this->connection));
|
||||||
}
|
}
|
||||||
mysqli_autocommit($this->connection, TRUE);
|
mysqli_autocommit($this->connection, TRUE);
|
||||||
}
|
}
|
||||||
@@ -196,7 +196,7 @@ class DibiMySqliDriver extends NObject implements DibiDriverInterface
|
|||||||
public function rollback()
|
public function rollback()
|
||||||
{
|
{
|
||||||
if (!mysqli_rollback($this->connection)) {
|
if (!mysqli_rollback($this->connection)) {
|
||||||
throw new DibiDatabaseException(mysqli_error($this->connection), mysqli_errno($this->connection));
|
throw new DibiDriverException(mysqli_error($this->connection), mysqli_errno($this->connection));
|
||||||
}
|
}
|
||||||
mysqli_autocommit($this->connection, TRUE);
|
mysqli_autocommit($this->connection, TRUE);
|
||||||
}
|
}
|
||||||
@@ -252,7 +252,7 @@ class DibiMySqliDriver extends NObject implements DibiDriverInterface
|
|||||||
public function rowCount()
|
public function rowCount()
|
||||||
{
|
{
|
||||||
if (!$this->buffered) {
|
if (!$this->buffered) {
|
||||||
throw new DibiDatabaseException('Row count is not available for unbuffered queries');
|
throw new DibiDriverException('Row count is not available for unbuffered queries');
|
||||||
}
|
}
|
||||||
return mysqli_num_rows($this->resultset);
|
return mysqli_num_rows($this->resultset);
|
||||||
}
|
}
|
||||||
@@ -282,7 +282,7 @@ class DibiMySqliDriver extends NObject implements DibiDriverInterface
|
|||||||
public function seek($row)
|
public function seek($row)
|
||||||
{
|
{
|
||||||
if (!$this->buffered) {
|
if (!$this->buffered) {
|
||||||
throw new DibiDatabaseException('Cannot seek an unbuffered result set');
|
throw new DibiDriverException('Cannot seek an unbuffered result set');
|
||||||
}
|
}
|
||||||
return mysqli_data_seek($this->resultset, $row);
|
return mysqli_data_seek($this->resultset, $row);
|
||||||
}
|
}
|
||||||
|
@@ -86,7 +86,7 @@ class DibiOdbcDriver extends NObject implements DibiDriverInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!is_resource($this->connection)) {
|
if (!is_resource($this->connection)) {
|
||||||
throw new DibiDatabaseException(odbc_errormsg() . ' ' . odbc_error());
|
throw new DibiDriverException(odbc_errormsg() . ' ' . odbc_error());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,14 +109,14 @@ class DibiOdbcDriver extends NObject implements DibiDriverInterface
|
|||||||
*
|
*
|
||||||
* @param string SQL statement.
|
* @param string SQL statement.
|
||||||
* @return bool have resultset?
|
* @return bool have resultset?
|
||||||
* @throws DibiDatabaseException
|
* @throws DibiDriverException
|
||||||
*/
|
*/
|
||||||
public function query($sql)
|
public function query($sql)
|
||||||
{
|
{
|
||||||
$this->resultset = @odbc_exec($this->connection, $sql);
|
$this->resultset = @odbc_exec($this->connection, $sql);
|
||||||
|
|
||||||
if ($this->resultset === FALSE) {
|
if ($this->resultset === FALSE) {
|
||||||
throw new DibiDatabaseException(odbc_errormsg($this->connection) . ' ' . odbc_error($this->connection), 0, $sql);
|
throw new DibiDriverException(odbc_errormsg($this->connection) . ' ' . odbc_error($this->connection), 0, $sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
return is_resource($this->resultset);
|
return is_resource($this->resultset);
|
||||||
@@ -155,7 +155,7 @@ class DibiOdbcDriver extends NObject implements DibiDriverInterface
|
|||||||
public function begin()
|
public function begin()
|
||||||
{
|
{
|
||||||
if (!odbc_autocommit($this->connection, FALSE)) {
|
if (!odbc_autocommit($this->connection, FALSE)) {
|
||||||
throw new DibiDatabaseException(odbc_errormsg($this->connection) . ' ' . odbc_error($this->connection));
|
throw new DibiDriverException(odbc_errormsg($this->connection) . ' ' . odbc_error($this->connection));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,7 +168,7 @@ class DibiOdbcDriver extends NObject implements DibiDriverInterface
|
|||||||
public function commit()
|
public function commit()
|
||||||
{
|
{
|
||||||
if (!odbc_commit($this->connection)) {
|
if (!odbc_commit($this->connection)) {
|
||||||
throw new DibiDatabaseException(odbc_errormsg($this->connection) . ' ' . odbc_error($this->connection));
|
throw new DibiDriverException(odbc_errormsg($this->connection) . ' ' . odbc_error($this->connection));
|
||||||
}
|
}
|
||||||
odbc_autocommit($this->connection, TRUE);
|
odbc_autocommit($this->connection, TRUE);
|
||||||
}
|
}
|
||||||
@@ -182,7 +182,7 @@ class DibiOdbcDriver extends NObject implements DibiDriverInterface
|
|||||||
public function rollback()
|
public function rollback()
|
||||||
{
|
{
|
||||||
if (!odbc_rollback($this->connection)) {
|
if (!odbc_rollback($this->connection)) {
|
||||||
throw new DibiDatabaseException(odbc_errormsg($this->connection) . ' ' . odbc_error($this->connection));
|
throw new DibiDriverException(odbc_errormsg($this->connection) . ' ' . odbc_error($this->connection));
|
||||||
}
|
}
|
||||||
odbc_autocommit($this->connection, TRUE);
|
odbc_autocommit($this->connection, TRUE);
|
||||||
}
|
}
|
||||||
|
@@ -78,7 +78,7 @@ class DibiOracleDriver extends NObject implements DibiDriverInterface
|
|||||||
|
|
||||||
if (!$this->connection) {
|
if (!$this->connection) {
|
||||||
$err = oci_error();
|
$err = oci_error();
|
||||||
throw new DibiDatabaseException($err['message'], $err['code']);
|
throw new DibiDriverException($err['message'], $err['code']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,7 +101,7 @@ class DibiOracleDriver extends NObject implements DibiDriverInterface
|
|||||||
*
|
*
|
||||||
* @param string SQL statement.
|
* @param string SQL statement.
|
||||||
* @return bool have resultset?
|
* @return bool have resultset?
|
||||||
* @throws DibiDatabaseException
|
* @throws DibiDriverException
|
||||||
*/
|
*/
|
||||||
public function query($sql)
|
public function query($sql)
|
||||||
{
|
{
|
||||||
@@ -111,11 +111,11 @@ class DibiOracleDriver extends NObject implements DibiDriverInterface
|
|||||||
oci_execute($this->resultset, $this->autocommit ? OCI_COMMIT_ON_SUCCESS : OCI_DEFAULT);
|
oci_execute($this->resultset, $this->autocommit ? OCI_COMMIT_ON_SUCCESS : OCI_DEFAULT);
|
||||||
$err = oci_error($this->resultset);
|
$err = oci_error($this->resultset);
|
||||||
if ($err) {
|
if ($err) {
|
||||||
throw new DibiDatabaseException($err['message'], $err['code'], $sql);
|
throw new DibiDriverException($err['message'], $err['code'], $sql);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$err = oci_error($this->connection);
|
$err = oci_error($this->connection);
|
||||||
throw new DibiDatabaseException($err['message'], $err['code'], $sql);
|
throw new DibiDriverException($err['message'], $err['code'], $sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
return is_resource($this->resultset);
|
return is_resource($this->resultset);
|
||||||
@@ -166,7 +166,7 @@ class DibiOracleDriver extends NObject implements DibiDriverInterface
|
|||||||
{
|
{
|
||||||
if (!oci_commit($this->connection)) {
|
if (!oci_commit($this->connection)) {
|
||||||
$err = oci_error($this->connection);
|
$err = oci_error($this->connection);
|
||||||
throw new DibiDatabaseException($err['message'], $err['code']);
|
throw new DibiDriverException($err['message'], $err['code']);
|
||||||
}
|
}
|
||||||
$this->autocommit = TRUE;
|
$this->autocommit = TRUE;
|
||||||
}
|
}
|
||||||
@@ -181,7 +181,7 @@ class DibiOracleDriver extends NObject implements DibiDriverInterface
|
|||||||
{
|
{
|
||||||
if (!oci_rollback($this->connection)) {
|
if (!oci_rollback($this->connection)) {
|
||||||
$err = oci_error($this->connection);
|
$err = oci_error($this->connection);
|
||||||
throw new DibiDatabaseException($err['message'], $err['code']);
|
throw new DibiDriverException($err['message'], $err['code']);
|
||||||
}
|
}
|
||||||
$this->autocommit = TRUE;
|
$this->autocommit = TRUE;
|
||||||
}
|
}
|
||||||
|
@@ -68,7 +68,16 @@ class DibiPdoDriver extends NObject implements DibiDriverInterface
|
|||||||
throw new DibiException("PHP extension 'pdo' is not loaded");
|
throw new DibiException("PHP extension 'pdo' is not loaded");
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->connection = new PDO($config['dsn'], $config['username'], $config['password'], $config['options']);
|
try {
|
||||||
|
$this->connection = new PDO($config['dsn'], $config['username'], $config['password'], $config['options']);
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
throw $this->convertException($e);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$this->connection) {
|
||||||
|
throw new DibiDriverException('Connecting error');
|
||||||
|
}
|
||||||
|
|
||||||
$this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
$this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,11 +99,15 @@ class DibiPdoDriver extends NObject implements DibiDriverInterface
|
|||||||
*
|
*
|
||||||
* @param string SQL statement.
|
* @param string SQL statement.
|
||||||
* @return bool have resultset?
|
* @return bool have resultset?
|
||||||
* @throws DibiDatabaseException
|
* @throws DibiDriverException
|
||||||
*/
|
*/
|
||||||
public function query($sql)
|
public function query($sql)
|
||||||
{
|
{
|
||||||
$this->resultset = $this->connection->query($sql);
|
try {
|
||||||
|
$this->resultset = $this->connection->query($sql);
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
throw $this->convertException($e);
|
||||||
|
}
|
||||||
return $this->resultset instanceof PDOStatement;
|
return $this->resultset instanceof PDOStatement;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,7 +143,11 @@ class DibiPdoDriver extends NObject implements DibiDriverInterface
|
|||||||
*/
|
*/
|
||||||
public function begin()
|
public function begin()
|
||||||
{
|
{
|
||||||
$this->connection->beginTransaction();
|
try {
|
||||||
|
$this->connection->beginTransaction();
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
throw $this->convertException($e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -141,7 +158,11 @@ class DibiPdoDriver extends NObject implements DibiDriverInterface
|
|||||||
*/
|
*/
|
||||||
public function commit()
|
public function commit()
|
||||||
{
|
{
|
||||||
$this->connection->commit();
|
try {
|
||||||
|
$this->connection->commit();
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
throw $this->convertException($e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -152,7 +173,11 @@ class DibiPdoDriver extends NObject implements DibiDriverInterface
|
|||||||
*/
|
*/
|
||||||
public function rollback()
|
public function rollback()
|
||||||
{
|
{
|
||||||
$this->connection->rollBack();
|
try {
|
||||||
|
$this->connection->rollBack();
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
throw $this->convertException($e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -199,7 +224,7 @@ class DibiPdoDriver extends NObject implements DibiDriverInterface
|
|||||||
*/
|
*/
|
||||||
public function rowCount()
|
public function rowCount()
|
||||||
{
|
{
|
||||||
throw new DibiDatabaseException('Row count is not available for unbuffered queries');
|
throw new DibiDriverException('Row count is not available for unbuffered queries');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -226,7 +251,7 @@ class DibiPdoDriver extends NObject implements DibiDriverInterface
|
|||||||
*/
|
*/
|
||||||
public function seek($row)
|
public function seek($row)
|
||||||
{
|
{
|
||||||
throw new DibiDatabaseException('Cannot seek an unbuffered result set');
|
throw new DibiDriverException('Cannot seek an unbuffered result set');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -291,4 +316,17 @@ class DibiPdoDriver extends NObject implements DibiDriverInterface
|
|||||||
function getDibiReflection()
|
function getDibiReflection()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disconnects from a database
|
||||||
|
*
|
||||||
|
* @param PDOException
|
||||||
|
* @return DibiDriverException
|
||||||
|
*/
|
||||||
|
private function convertException($e)
|
||||||
|
{
|
||||||
|
return new DibiDriverException($e->getMessage(), $e->getCode());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -66,7 +66,7 @@ class DibiPostgreDriver extends NObject implements DibiDriverInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NException::catchError('DibiDatabaseException');
|
NException::catchError('DibiDriverException');
|
||||||
if (isset($config['persistent'])) {
|
if (isset($config['persistent'])) {
|
||||||
$this->connection = @pg_connect($config['database'], PGSQL_CONNECT_FORCE_NEW);
|
$this->connection = @pg_connect($config['database'], PGSQL_CONNECT_FORCE_NEW);
|
||||||
} else {
|
} else {
|
||||||
@@ -75,7 +75,7 @@ class DibiPostgreDriver extends NObject implements DibiDriverInterface
|
|||||||
NException::restore();
|
NException::restore();
|
||||||
|
|
||||||
if (!is_resource($this->connection)) {
|
if (!is_resource($this->connection)) {
|
||||||
throw new DibiDatabaseException('unknown error');
|
throw new DibiDriverException('Connecting error');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($config['charset'])) {
|
if (isset($config['charset'])) {
|
||||||
@@ -104,14 +104,14 @@ class DibiPostgreDriver extends NObject implements DibiDriverInterface
|
|||||||
* @param string SQL statement.
|
* @param string SQL statement.
|
||||||
* @param bool update affected rows?
|
* @param bool update affected rows?
|
||||||
* @return bool have resultset?
|
* @return bool have resultset?
|
||||||
* @throws DibiDatabaseException
|
* @throws DibiDriverException
|
||||||
*/
|
*/
|
||||||
public function query($sql)
|
public function query($sql)
|
||||||
{
|
{
|
||||||
$this->resultset = @pg_query($this->connection, $sql);
|
$this->resultset = @pg_query($this->connection, $sql);
|
||||||
|
|
||||||
if ($this->resultset === FALSE) {
|
if ($this->resultset === FALSE) {
|
||||||
throw new DibiDatabaseException(pg_last_error($this->connection), 0, $sql);
|
throw new DibiDriverException(pg_last_error($this->connection), 0, $sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
return is_resource($this->resultset);
|
return is_resource($this->resultset);
|
||||||
|
@@ -78,7 +78,7 @@ class DibiSqliteDriver extends NObject implements DibiDriverInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!$this->connection) {
|
if (!$this->connection) {
|
||||||
throw new DibiDatabaseException($errorMsg);
|
throw new DibiDriverException($errorMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->buffered = empty($config['unbuffered']);
|
$this->buffered = empty($config['unbuffered']);
|
||||||
@@ -102,7 +102,7 @@ class DibiSqliteDriver extends NObject implements DibiDriverInterface
|
|||||||
*
|
*
|
||||||
* @param string SQL statement.
|
* @param string SQL statement.
|
||||||
* @return bool have resultset?
|
* @return bool have resultset?
|
||||||
* @throws DibiDatabaseException
|
* @throws DibiDriverException
|
||||||
*/
|
*/
|
||||||
public function query($sql)
|
public function query($sql)
|
||||||
{
|
{
|
||||||
@@ -115,7 +115,7 @@ class DibiSqliteDriver extends NObject implements DibiDriverInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($errorMsg !== NULL) {
|
if ($errorMsg !== NULL) {
|
||||||
throw new DibiDatabaseException($errorMsg, sqlite_last_error($this->connection), $sql);
|
throw new DibiDriverException($errorMsg, sqlite_last_error($this->connection), $sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
return is_resource($this->resultset);
|
return is_resource($this->resultset);
|
||||||
@@ -225,7 +225,7 @@ class DibiSqliteDriver extends NObject implements DibiDriverInterface
|
|||||||
public function rowCount()
|
public function rowCount()
|
||||||
{
|
{
|
||||||
if (!$this->buffered) {
|
if (!$this->buffered) {
|
||||||
throw new DibiDatabaseException('Row count is not available for unbuffered queries');
|
throw new DibiDriverException('Row count is not available for unbuffered queries');
|
||||||
}
|
}
|
||||||
return sqlite_num_rows($this->resultset);
|
return sqlite_num_rows($this->resultset);
|
||||||
}
|
}
|
||||||
@@ -255,7 +255,7 @@ class DibiSqliteDriver extends NObject implements DibiDriverInterface
|
|||||||
public function seek($row)
|
public function seek($row)
|
||||||
{
|
{
|
||||||
if (!$this->buffered) {
|
if (!$this->buffered) {
|
||||||
throw new DibiDatabaseException('Cannot seek an unbuffered result set');
|
throw new DibiDriverException('Cannot seek an unbuffered result set');
|
||||||
}
|
}
|
||||||
return sqlite_seek($this->resultset, $row);
|
return sqlite_seek($this->resultset, $row);
|
||||||
}
|
}
|
||||||
|
@@ -56,7 +56,7 @@ interface DibiDriverInterface
|
|||||||
*
|
*
|
||||||
* @param string SQL statement.
|
* @param string SQL statement.
|
||||||
* @return bool have resultset?
|
* @return bool have resultset?
|
||||||
* @throws DibiDatabaseException
|
* @throws DibiDriverException
|
||||||
*/
|
*/
|
||||||
function query($sql);
|
function query($sql);
|
||||||
|
|
||||||
|
@@ -40,7 +40,7 @@ class DibiException extends Exception
|
|||||||
* @package dibi
|
* @package dibi
|
||||||
* @version $Revision$ $Date$
|
* @version $Revision$ $Date$
|
||||||
*/
|
*/
|
||||||
class DibiDatabaseException extends DibiException
|
class DibiDriverException extends DibiException
|
||||||
{
|
{
|
||||||
/** @var string */
|
/** @var string */
|
||||||
private $sql;
|
private $sql;
|
||||||
|
@@ -73,7 +73,7 @@ final class DibiLogger extends NObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($event === 'exception' && $this->logErrors) {
|
if ($event === 'exception' && $this->logErrors) {
|
||||||
// $arg is DibiDatabaseException
|
// $arg is DibiDriverException
|
||||||
$message = $arg->getMessage();
|
$message = $arg->getMessage();
|
||||||
$code = $arg->getCode();
|
$code = $arg->getCode();
|
||||||
if ($code) {
|
if ($code) {
|
||||||
|
Reference in New Issue
Block a user