1
0
mirror of https://github.com/dg/dibi.git synced 2025-08-12 00:54:11 +02:00
This commit is contained in:
David Grudl
2007-08-23 00:57:28 +00:00
parent 2c6608f817
commit 05b8c0ad43
10 changed files with 101 additions and 5 deletions

View File

@@ -196,6 +196,7 @@ class dibi
} }
/** /**
* Retrieve active connection * Retrieve active connection
* *
@@ -439,6 +440,7 @@ class dibi
} }
/** /**
* Remove substitution pair * Remove substitution pair
* @param string from * @param string from
@@ -450,6 +452,7 @@ class dibi
} }
/** /**
* Process substitutions in string * Process substitutions in string
* @param string * @param string
@@ -462,6 +465,7 @@ class dibi
} }
/** /**
* Error logging * Error logging
* EXPERIMENTAL * EXPERIMENTAL

View File

@@ -74,7 +74,6 @@ class DibiMSSqlDriver extends DibiDriver
public function nativeQuery($sql) public function nativeQuery($sql)
{ {
$this->affectedRows = FALSE; $this->affectedRows = FALSE;
@@ -93,36 +92,42 @@ class DibiMSSqlDriver extends DibiDriver
} }
public function affectedRows() public function affectedRows()
{ {
return $this->affectedRows; return $this->affectedRows;
} }
public function insertId() public function insertId()
{ {
return FALSE; return FALSE;
} }
public function begin() public function begin()
{ {
return mssql_query('BEGIN TRANSACTION', $this->getConnection()); return mssql_query('BEGIN TRANSACTION', $this->getConnection());
} }
public function commit() public function commit()
{ {
return mssql_query('COMMIT', $this->getConnection()); return mssql_query('COMMIT', $this->getConnection());
} }
public function rollback() public function rollback()
{ {
return mssql_query('ROLLBACK', $this->getConnection()); return mssql_query('ROLLBACK', $this->getConnection());
} }
public function errorInfo() public function errorInfo()
{ {
return array( return array(
@@ -132,6 +137,7 @@ class DibiMSSqlDriver extends DibiDriver
} }
public function escape($value, $appendQuotes = TRUE) public function escape($value, $appendQuotes = TRUE)
{ {
$value = str_replace("'", "''", $value); $value = str_replace("'", "''", $value);
@@ -141,18 +147,21 @@ class DibiMSSqlDriver extends DibiDriver
} }
public function delimite($value) public function delimite($value)
{ {
return '[' . str_replace('.', '].[', $value) . ']'; return '[' . str_replace('.', '].[', $value) . ']';
} }
public function getMetaData() public function getMetaData()
{ {
trigger_error('Meta is not implemented yet.', E_USER_WARNING); trigger_error('Meta is not implemented yet.', E_USER_WARNING);
} }
/** /**
* @see DibiDriver::applyLimit() * @see DibiDriver::applyLimit()
*/ */
@@ -187,30 +196,35 @@ class DibiMSSqlResult extends DibiResult
} }
public function rowCount() public function rowCount()
{ {
return mssql_num_rows($this->resource); return mssql_num_rows($this->resource);
} }
protected function doFetch() protected function doFetch()
{ {
return mssql_fetch_assoc($this->resource); return mssql_fetch_assoc($this->resource);
} }
public function seek($row) public function seek($row)
{ {
return mssql_data_seek($this->resource, $row); return mssql_data_seek($this->resource, $row);
} }
protected function free() protected function free()
{ {
mssql_free_result($this->resource); mssql_free_result($this->resource);
} }
/** this is experimental */ /** this is experimental */
protected function buildMeta() protected function buildMeta()
{ {

View File

@@ -107,7 +107,6 @@ class DibiMySqlDriver extends DibiDriver
public function nativeQuery($sql) public function nativeQuery($sql)
{ {
$this->insertId = $this->affectedRows = FALSE; $this->insertId = $this->affectedRows = FALSE;
@@ -129,36 +128,42 @@ class DibiMySqlDriver extends DibiDriver
} }
public function affectedRows() public function affectedRows()
{ {
return $this->affectedRows; return $this->affectedRows;
} }
public function insertId() public function insertId()
{ {
return $this->insertId; return $this->insertId;
} }
public function begin() public function begin()
{ {
return mysql_query('BEGIN', $this->getConnection()); return mysql_query('BEGIN', $this->getConnection());
} }
public function commit() public function commit()
{ {
return mysql_query('COMMIT', $this->getConnection()); return mysql_query('COMMIT', $this->getConnection());
} }
public function rollback() public function rollback()
{ {
return mysql_query('ROLLBACK', $this->getConnection()); return mysql_query('ROLLBACK', $this->getConnection());
} }
public function errorInfo() public function errorInfo()
{ {
$connection = $this->getConnection(); $connection = $this->getConnection();
@@ -169,6 +174,7 @@ class DibiMySqlDriver extends DibiDriver
} }
public function escape($value, $appendQuotes = TRUE) public function escape($value, $appendQuotes = TRUE)
{ {
$connection = $this->getConnection(); $connection = $this->getConnection();
@@ -178,18 +184,21 @@ class DibiMySqlDriver extends DibiDriver
} }
public function delimite($value) public function delimite($value)
{ {
return '`' . str_replace('.', '`.`', $value) . '`'; return '`' . str_replace('.', '`.`', $value) . '`';
} }
public function getMetaData() public function getMetaData()
{ {
trigger_error('Meta is not implemented yet.', E_USER_WARNING); trigger_error('Meta is not implemented yet.', E_USER_WARNING);
} }
/** /**
* @see DibiDriver::applyLimit() * @see DibiDriver::applyLimit()
*/ */
@@ -224,30 +233,35 @@ class DibiMySqlResult extends DibiResult
} }
public function rowCount() public function rowCount()
{ {
return mysql_num_rows($this->resource); return mysql_num_rows($this->resource);
} }
protected function doFetch() protected function doFetch()
{ {
return mysql_fetch_assoc($this->resource); return mysql_fetch_assoc($this->resource);
} }
public function seek($row) public function seek($row)
{ {
return mysql_data_seek($this->resource, $row); return mysql_data_seek($this->resource, $row);
} }
protected function free() protected function free()
{ {
mysql_free_result($this->resource); mysql_free_result($this->resource);
} }
/** this is experimental */ /** this is experimental */
protected function buildMeta() protected function buildMeta()
{ {

View File

@@ -101,24 +101,28 @@ class DibiMySqliDriver extends DibiDriver
} }
public function affectedRows() public function affectedRows()
{ {
return $this->affectedRows; return $this->affectedRows;
} }
public function insertId() public function insertId()
{ {
return $this->insertId; return $this->insertId;
} }
public function begin() public function begin()
{ {
return mysqli_autocommit($this->getConnection(), FALSE); return mysqli_autocommit($this->getConnection(), FALSE);
} }
public function commit() public function commit()
{ {
$connection = $this->getConnection(); $connection = $this->getConnection();
@@ -128,6 +132,7 @@ class DibiMySqliDriver extends DibiDriver
} }
public function rollback() public function rollback()
{ {
$connection = $this->getConnection(); $connection = $this->getConnection();
@@ -137,6 +142,7 @@ class DibiMySqliDriver extends DibiDriver
} }
public function errorInfo() public function errorInfo()
{ {
$connection = $this->getConnection(); $connection = $this->getConnection();
@@ -148,7 +154,6 @@ class DibiMySqliDriver extends DibiDriver
public function escape($value, $appendQuotes = TRUE) public function escape($value, $appendQuotes = TRUE)
{ {
$connection = $this->getConnection(); $connection = $this->getConnection();
@@ -158,6 +163,7 @@ class DibiMySqliDriver extends DibiDriver
} }
public function delimite($value) public function delimite($value)
{ {
return '`' . str_replace('.', '`.`', $value) . '`'; return '`' . str_replace('.', '`.`', $value) . '`';
@@ -171,6 +177,7 @@ class DibiMySqliDriver extends DibiDriver
} }
/** /**
* @see DibiDriver::applyLimit() * @see DibiDriver::applyLimit()
*/ */
@@ -205,30 +212,35 @@ class DibiMySqliResult extends DibiResult
} }
public function rowCount() public function rowCount()
{ {
return mysqli_num_rows($this->resource); return mysqli_num_rows($this->resource);
} }
protected function doFetch() protected function doFetch()
{ {
return mysqli_fetch_assoc($this->resource); return mysqli_fetch_assoc($this->resource);
} }
public function seek($row) public function seek($row)
{ {
return mysqli_data_seek($this->resource, $row); return mysqli_data_seek($this->resource, $row);
} }
protected function free() protected function free()
{ {
mysqli_free_result($this->resource); mysqli_free_result($this->resource);
} }
/** this is experimental */ /** this is experimental */
protected function buildMeta() protected function buildMeta()
{ {

View File

@@ -102,24 +102,28 @@ class DibiOdbcDriver extends DibiDriver
} }
public function affectedRows() public function affectedRows()
{ {
return $this->affectedRows; return $this->affectedRows;
} }
public function insertId() public function insertId()
{ {
return FALSE; return FALSE;
} }
public function begin() public function begin()
{ {
return odbc_autocommit($this->getConnection(), FALSE); return odbc_autocommit($this->getConnection(), FALSE);
} }
public function commit() public function commit()
{ {
$connection = $this->getConnection(); $connection = $this->getConnection();
@@ -129,6 +133,7 @@ class DibiOdbcDriver extends DibiDriver
} }
public function rollback() public function rollback()
{ {
$connection = $this->getConnection(); $connection = $this->getConnection();
@@ -138,6 +143,7 @@ class DibiOdbcDriver extends DibiDriver
} }
public function errorInfo() public function errorInfo()
{ {
$connection = $this->getConnection(); $connection = $this->getConnection();
@@ -158,18 +164,21 @@ class DibiOdbcDriver extends DibiDriver
} }
public function delimite($value) public function delimite($value)
{ {
return '[' . str_replace('.', '].[', $value) . ']'; return '[' . str_replace('.', '].[', $value) . ']';
} }
public function getMetaData() public function getMetaData()
{ {
trigger_error('Meta is not implemented yet.', E_USER_WARNING); trigger_error('Meta is not implemented yet.', E_USER_WARNING);
} }
/** /**
* @see DibiDriver::applyLimit() * @see DibiDriver::applyLimit()
*/ */
@@ -203,6 +212,7 @@ class DibiOdbcResult extends DibiResult
} }
public function rowCount() public function rowCount()
{ {
// will return -1 with many drivers :-( // will return -1 with many drivers :-(
@@ -210,24 +220,28 @@ class DibiOdbcResult extends DibiResult
} }
protected function doFetch() protected function doFetch()
{ {
return odbc_fetch_array($this->resource, $this->row++); return odbc_fetch_array($this->resource, $this->row++);
} }
public function seek($row) public function seek($row)
{ {
$this->row = $row; $this->row = $row;
} }
protected function free() protected function free()
{ {
odbc_free_result($this->resource); odbc_free_result($this->resource);
} }
/** this is experimental */ /** this is experimental */
protected function buildMeta() protected function buildMeta()
{ {

View File

@@ -77,36 +77,42 @@ class DibiPdoDriver extends DibiDriver
} }
public function affectedRows() public function affectedRows()
{ {
return $this->affectedRows; return $this->affectedRows;
} }
public function insertId() public function insertId()
{ {
return $this->getConnection()->lastInsertId(); return $this->getConnection()->lastInsertId();
} }
public function begin() public function begin()
{ {
return $this->getConnection()->beginTransaction(); return $this->getConnection()->beginTransaction();
} }
public function commit() public function commit()
{ {
return $this->getConnection()->commit(); return $this->getConnection()->commit();
} }
public function rollback() public function rollback()
{ {
return $this->getConnection()->rollBack(); return $this->getConnection()->rollBack();
} }
public function errorInfo() public function errorInfo()
{ {
$error = $this->getConnection()->errorInfo(); $error = $this->getConnection()->errorInfo();
@@ -118,6 +124,7 @@ class DibiPdoDriver extends DibiDriver
} }
public function escape($value, $appendQuotes = TRUE) public function escape($value, $appendQuotes = TRUE)
{ {
if (!$appendQuotes) { if (!$appendQuotes) {
@@ -128,6 +135,7 @@ class DibiPdoDriver extends DibiDriver
} }
public function delimite($value) public function delimite($value)
{ {
// quoting is not supported by PDO // quoting is not supported by PDO
@@ -175,29 +183,34 @@ class DibiPdoResult extends DibiResult
} }
public function rowCount() public function rowCount()
{ {
return $this->resource->rowCount(); return $this->resource->rowCount();
} }
protected function doFetch() protected function doFetch()
{ {
return $this->resource->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_NEXT, $this->row++); return $this->resource->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_NEXT, $this->row++);
} }
public function seek($row) public function seek($row)
{ {
$this->row = $row; $this->row = $row;
} }
protected function free() protected function free()
{ {
} }
/** this is experimental */ /** this is experimental */
protected function buildMeta() protected function buildMeta()
{ {

View File

@@ -96,36 +96,42 @@ class DibiPostgreDriver extends DibiDriver
} }
public function affectedRows() public function affectedRows()
{ {
return $this->affectedRows; return $this->affectedRows;
} }
public function insertId() public function insertId()
{ {
return FALSE; return FALSE;
} }
public function begin() public function begin()
{ {
return pg_query($this->getConnection(), 'BEGIN'); return pg_query($this->getConnection(), 'BEGIN');
} }
public function commit() public function commit()
{ {
return pg_query($this->getConnection(), 'COMMIT'); return pg_query($this->getConnection(), 'COMMIT');
} }
public function rollback() public function rollback()
{ {
return pg_query($this->getConnection(), 'ROLLBACK'); return pg_query($this->getConnection(), 'ROLLBACK');
} }
public function errorInfo() public function errorInfo()
{ {
return array( return array(
@@ -135,6 +141,7 @@ class DibiPostgreDriver extends DibiDriver
} }
public function escape($value, $appendQuotes = TRUE) public function escape($value, $appendQuotes = TRUE)
{ {
return $appendQuotes return $appendQuotes
@@ -143,6 +150,7 @@ class DibiPostgreDriver extends DibiDriver
} }
public function delimite($value) public function delimite($value)
{ {
return $value; return $value;
@@ -191,30 +199,35 @@ class DibiPostgreResult extends DibiResult
} }
public function rowCount() public function rowCount()
{ {
return pg_num_rows($this->resource); return pg_num_rows($this->resource);
} }
protected function doFetch() protected function doFetch()
{ {
return pg_fetch_array($this->resource, NULL, PGSQL_ASSOC); return pg_fetch_array($this->resource, NULL, PGSQL_ASSOC);
} }
public function seek($row) public function seek($row)
{ {
return pg_result_seek($this->resource, $row); return pg_result_seek($this->resource, $row);
} }
protected function free() protected function free()
{ {
pg_free_result($this->resource); pg_free_result($this->resource);
} }
/** this is experimental */ /** this is experimental */
protected function buildMeta() protected function buildMeta()
{ {

View File

@@ -98,36 +98,42 @@ class DibiSqliteDriver extends DibiDriver
} }
public function affectedRows() public function affectedRows()
{ {
return $this->affectedRows; return $this->affectedRows;
} }
public function insertId() public function insertId()
{ {
return $this->insertId; return $this->insertId;
} }
public function begin() public function begin()
{ {
return sqlite_query($this->getConnection(), 'BEGIN'); return sqlite_query($this->getConnection(), 'BEGIN');
} }
public function commit() public function commit()
{ {
return sqlite_query($this->getConnection(), 'COMMIT'); return sqlite_query($this->getConnection(), 'COMMIT');
} }
public function rollback() public function rollback()
{ {
return sqlite_query($this->getConnection(), 'ROLLBACK'); return sqlite_query($this->getConnection(), 'ROLLBACK');
} }
public function errorInfo() public function errorInfo()
{ {
$code = sqlite_last_error($this->getConnection()); $code = sqlite_last_error($this->getConnection());
@@ -138,6 +144,7 @@ class DibiSqliteDriver extends DibiDriver
} }
public function escape($value, $appendQuotes = TRUE) public function escape($value, $appendQuotes = TRUE)
{ {
return $appendQuotes return $appendQuotes
@@ -146,6 +153,7 @@ class DibiSqliteDriver extends DibiDriver
} }
public function delimite($value) public function delimite($value)
{ {
return '[' . str_replace('.', '].[', $value) . ']'; return '[' . str_replace('.', '].[', $value) . ']';
@@ -190,29 +198,34 @@ class DibiSqliteResult extends DibiResult
} }
public function rowCount() public function rowCount()
{ {
return sqlite_num_rows($this->resource); return sqlite_num_rows($this->resource);
} }
protected function doFetch() protected function doFetch()
{ {
return sqlite_fetch_array($this->resource, SQLITE_ASSOC); return sqlite_fetch_array($this->resource, SQLITE_ASSOC);
} }
public function seek($row) public function seek($row)
{ {
return sqlite_seek($this->resource, $row); return sqlite_seek($this->resource, $row);
} }
protected function free() protected function free()
{ {
} }
/** this is experimental */ /** this is experimental */
protected function buildMeta() protected function buildMeta()
{ {

View File

@@ -49,6 +49,7 @@ class DibiException extends Exception
} }
public function __toString() public function __toString()
{ {
$s = parent::__toString(); $s = parent::__toString();

View File

@@ -137,7 +137,6 @@ final class DibiTranslator
private function formatValue($value, $modifier) private function formatValue($value, $modifier)
{ {
// array processing (with or without modifier) // array processing (with or without modifier)
@@ -287,7 +286,6 @@ final class DibiTranslator
/** /**
* PREG callback for @see self::formatValue() * PREG callback for @see self::formatValue()
* @param array * @param array