mirror of
https://github.com/dg/dibi.git
synced 2025-08-05 13:47:33 +02:00
- removed 'FIELD_' from dibi data types
This commit is contained in:
@@ -92,22 +92,31 @@ require_once dirname(__FILE__) . '/libs/DibiProfiler.php';
|
||||
class dibi
|
||||
{
|
||||
/**#@+
|
||||
* dibi column type
|
||||
* dibi data type
|
||||
*/
|
||||
const FIELD_TEXT = 's'; // as 'string'
|
||||
const FIELD_BINARY = 'bin';
|
||||
const FIELD_BOOL = 'b';
|
||||
const FIELD_INTEGER = 'i';
|
||||
const FIELD_FLOAT = 'f';
|
||||
const FIELD_DATE = 'd';
|
||||
const FIELD_DATETIME = 't';
|
||||
const FIELD_TIME = 't';
|
||||
const TEXT = 's'; // as 'string'
|
||||
const BINARY = 'bin';
|
||||
const BOOL = 'b';
|
||||
const INTEGER = 'i';
|
||||
const FLOAT = 'f';
|
||||
const DATE = 'd';
|
||||
const DATETIME = 't';
|
||||
const TIME = 't';
|
||||
const IDENTIFIER = 'n';
|
||||
/**#@-*/
|
||||
|
||||
/**
|
||||
* Identifier type
|
||||
/**#@+
|
||||
* @deprecated column types
|
||||
*/
|
||||
const IDENTIFIER = 'n';
|
||||
const FIELD_TEXT = self::TEXT;
|
||||
const FIELD_BINARY = self::BINARY;
|
||||
const FIELD_BOOL = self::BOOL;
|
||||
const FIELD_INTEGER = self::INTEGER;
|
||||
const FIELD_FLOAT = self::FLOAT;
|
||||
const FIELD_DATE = self::DATE;
|
||||
const FIELD_DATETIME = self::DATETIME;
|
||||
const FIELD_TIME = self::TIME;
|
||||
/**#@-*/
|
||||
|
||||
/**#@+
|
||||
* dibi version
|
||||
@@ -579,7 +588,7 @@ class dibi
|
||||
} else {
|
||||
$time = strtotime($time); // try convert to timestamp
|
||||
}
|
||||
return new DibiVariable($time, dibi::FIELD_DATETIME);
|
||||
return new DibiVariable($time, dibi::DATETIME);
|
||||
}
|
||||
|
||||
|
||||
@@ -592,7 +601,7 @@ class dibi
|
||||
public static function date($date = NULL)
|
||||
{
|
||||
$var = self::datetime($date);
|
||||
$var->modifier = dibi::FIELD_DATE;
|
||||
$var->modifier = dibi::DATE;
|
||||
return $var;
|
||||
}
|
||||
|
||||
|
@@ -201,15 +201,15 @@ class DibiMsSqlDriver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Encodes data for use in an SQL statement.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_TEXT, dibi::FIELD_BOOL, ...)
|
||||
* @param string type (dibi::TEXT, dibi::BOOL, ...)
|
||||
* @return string encoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function escape($value, $type)
|
||||
{
|
||||
switch ($type) {
|
||||
case dibi::FIELD_TEXT:
|
||||
case dibi::FIELD_BINARY:
|
||||
case dibi::TEXT:
|
||||
case dibi::BINARY:
|
||||
return "'" . str_replace("'", "''", $value) . "'";
|
||||
|
||||
case dibi::IDENTIFIER:
|
||||
@@ -217,13 +217,13 @@ class DibiMsSqlDriver extends DibiObject implements IDibiDriver
|
||||
$value = str_replace(array('[', ']'), array('[[', ']]'), $value);
|
||||
return '[' . str_replace('.', '].[', $value) . ']';
|
||||
|
||||
case dibi::FIELD_BOOL:
|
||||
case dibi::BOOL:
|
||||
return $value ? -1 : 0;
|
||||
|
||||
case dibi::FIELD_DATE:
|
||||
case dibi::DATE:
|
||||
return date("'Y-m-d'", $value);
|
||||
|
||||
case dibi::FIELD_DATETIME:
|
||||
case dibi::DATETIME:
|
||||
return date("'Y-m-d H:i:s'", $value);
|
||||
|
||||
default:
|
||||
@@ -236,7 +236,7 @@ class DibiMsSqlDriver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Decodes data from result set.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_BINARY)
|
||||
* @param string type (dibi::BINARY)
|
||||
* @return string decoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
|
@@ -201,15 +201,15 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Encodes data for use in an SQL statement.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_TEXT, dibi::FIELD_BOOL, ...)
|
||||
* @param string type (dibi::TEXT, dibi::BOOL, ...)
|
||||
* @return string encoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function escape($value, $type)
|
||||
{
|
||||
switch ($type) {
|
||||
case dibi::FIELD_TEXT:
|
||||
case dibi::FIELD_BINARY:
|
||||
case dibi::TEXT:
|
||||
case dibi::BINARY:
|
||||
return "'" . str_replace("'", "''", $value) . "'";
|
||||
|
||||
case dibi::IDENTIFIER:
|
||||
@@ -217,13 +217,13 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver
|
||||
$value = str_replace(array('[', ']'), array('[[', ']]'), $value);
|
||||
return '[' . str_replace('.', '].[', $value) . ']';
|
||||
|
||||
case dibi::FIELD_BOOL:
|
||||
case dibi::BOOL:
|
||||
return $value ? -1 : 0;
|
||||
|
||||
case dibi::FIELD_DATE:
|
||||
case dibi::DATE:
|
||||
return date("'Y-m-d'", $value);
|
||||
|
||||
case dibi::FIELD_DATETIME:
|
||||
case dibi::DATETIME:
|
||||
return date("'Y-m-d H:i:s'", $value);
|
||||
|
||||
default:
|
||||
@@ -236,7 +236,7 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Decodes data from result set.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_BINARY)
|
||||
* @param string type (dibi::BINARY)
|
||||
* @return string decoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
|
@@ -273,17 +273,17 @@ class DibiMySqlDriver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Encodes data for use in an SQL statement.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_TEXT, dibi::FIELD_BOOL, ...)
|
||||
* @param string type (dibi::TEXT, dibi::BOOL, ...)
|
||||
* @return string encoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function escape($value, $type)
|
||||
{
|
||||
switch ($type) {
|
||||
case dibi::FIELD_TEXT:
|
||||
case dibi::TEXT:
|
||||
return "'" . mysql_real_escape_string($value, $this->connection) . "'";
|
||||
|
||||
case dibi::FIELD_BINARY:
|
||||
case dibi::BINARY:
|
||||
return "_binary'" . mysql_real_escape_string($value, $this->connection) . "'";
|
||||
|
||||
case dibi::IDENTIFIER:
|
||||
@@ -291,13 +291,13 @@ class DibiMySqlDriver extends DibiObject implements IDibiDriver
|
||||
$value = str_replace('`', '``', $value);
|
||||
return '`' . str_replace('.', '`.`', $value) . '`';
|
||||
|
||||
case dibi::FIELD_BOOL:
|
||||
case dibi::BOOL:
|
||||
return $value ? 1 : 0;
|
||||
|
||||
case dibi::FIELD_DATE:
|
||||
case dibi::DATE:
|
||||
return date("'Y-m-d'", $value);
|
||||
|
||||
case dibi::FIELD_DATETIME:
|
||||
case dibi::DATETIME:
|
||||
return date("'Y-m-d H:i:s'", $value);
|
||||
|
||||
default:
|
||||
@@ -310,7 +310,7 @@ class DibiMySqlDriver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Decodes data from result set.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_BINARY)
|
||||
* @param string type (dibi::BINARY)
|
||||
* @return string decoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
|
@@ -257,30 +257,30 @@ class DibiMySqliDriver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Encodes data for use in an SQL statement.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_TEXT, dibi::FIELD_BOOL, ...)
|
||||
* @param string type (dibi::TEXT, dibi::BOOL, ...)
|
||||
* @return string encoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function escape($value, $type)
|
||||
{
|
||||
switch ($type) {
|
||||
case dibi::FIELD_TEXT:
|
||||
case dibi::TEXT:
|
||||
return "'" . mysqli_real_escape_string($this->connection, $value) . "'";
|
||||
|
||||
case dibi::FIELD_BINARY:
|
||||
case dibi::BINARY:
|
||||
return "_binary'" . mysqli_real_escape_string($this->connection, $value) . "'";
|
||||
|
||||
case dibi::IDENTIFIER:
|
||||
$value = str_replace('`', '``', $value);
|
||||
return '`' . str_replace('.', '`.`', $value) . '`';
|
||||
|
||||
case dibi::FIELD_BOOL:
|
||||
case dibi::BOOL:
|
||||
return $value ? 1 : 0;
|
||||
|
||||
case dibi::FIELD_DATE:
|
||||
case dibi::DATE:
|
||||
return date("'Y-m-d'", $value);
|
||||
|
||||
case dibi::FIELD_DATETIME:
|
||||
case dibi::DATETIME:
|
||||
return date("'Y-m-d H:i:s'", $value);
|
||||
|
||||
default:
|
||||
@@ -293,7 +293,7 @@ class DibiMySqliDriver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Decodes data from result set.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_BINARY)
|
||||
* @param string type (dibi::BINARY)
|
||||
* @return string decoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
@@ -461,7 +461,7 @@ class DibiMySqliDriver extends DibiObject implements IDibiDriver
|
||||
*/
|
||||
public function getColumns($table)
|
||||
{
|
||||
/*$table = $this->escape($table, dibi::FIELD_TEXT);
|
||||
/*$table = $this->escape($table, dibi::TEXT);
|
||||
$this->query("
|
||||
SELECT *
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
@@ -494,7 +494,7 @@ class DibiMySqliDriver extends DibiObject implements IDibiDriver
|
||||
*/
|
||||
public function getIndexes($table)
|
||||
{
|
||||
/*$table = $this->escape($table, dibi::FIELD_TEXT);
|
||||
/*$table = $this->escape($table, dibi::TEXT);
|
||||
$this->query("
|
||||
SELECT *
|
||||
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
|
||||
|
@@ -208,28 +208,28 @@ class DibiOdbcDriver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Encodes data for use in an SQL statement.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_TEXT, dibi::FIELD_BOOL, ...)
|
||||
* @param string type (dibi::TEXT, dibi::BOOL, ...)
|
||||
* @return string encoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function escape($value, $type)
|
||||
{
|
||||
switch ($type) {
|
||||
case dibi::FIELD_TEXT:
|
||||
case dibi::FIELD_BINARY:
|
||||
case dibi::TEXT:
|
||||
case dibi::BINARY:
|
||||
return "'" . str_replace("'", "''", $value) . "'";
|
||||
|
||||
case dibi::IDENTIFIER:
|
||||
$value = str_replace(array('[', ']'), array('[[', ']]'), $value);
|
||||
return '[' . str_replace('.', '].[', $value) . ']';
|
||||
|
||||
case dibi::FIELD_BOOL:
|
||||
case dibi::BOOL:
|
||||
return $value ? -1 : 0;
|
||||
|
||||
case dibi::FIELD_DATE:
|
||||
case dibi::DATE:
|
||||
return date("#m/d/Y#", $value);
|
||||
|
||||
case dibi::FIELD_DATETIME:
|
||||
case dibi::DATETIME:
|
||||
return date("#m/d/Y H:i:s#", $value);
|
||||
|
||||
default:
|
||||
@@ -242,7 +242,7 @@ class DibiOdbcDriver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Decodes data from result set.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_BINARY)
|
||||
* @param string type (dibi::BINARY)
|
||||
* @return string decoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
|
@@ -208,15 +208,15 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Encodes data for use in an SQL statement.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_TEXT, dibi::FIELD_BOOL, ...)
|
||||
* @param string type (dibi::TEXT, dibi::BOOL, ...)
|
||||
* @return string encoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function escape($value, $type)
|
||||
{
|
||||
switch ($type) {
|
||||
case dibi::FIELD_TEXT:
|
||||
case dibi::FIELD_BINARY:
|
||||
case dibi::TEXT:
|
||||
case dibi::BINARY:
|
||||
return "'" . str_replace("'", "''", $value) . "'"; // TODO: not tested
|
||||
|
||||
case dibi::IDENTIFIER:
|
||||
@@ -224,13 +224,13 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver
|
||||
$value = str_replace('"', '""', $value);
|
||||
return '"' . str_replace('.', '"."', $value) . '"';
|
||||
|
||||
case dibi::FIELD_BOOL:
|
||||
case dibi::BOOL:
|
||||
return $value ? 1 : 0;
|
||||
|
||||
case dibi::FIELD_DATE:
|
||||
case dibi::DATE:
|
||||
return date("U", $value);
|
||||
|
||||
case dibi::FIELD_DATETIME:
|
||||
case dibi::DATETIME:
|
||||
return date("U", $value);
|
||||
|
||||
default:
|
||||
@@ -243,7 +243,7 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Decodes data from result set.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_BINARY)
|
||||
* @param string type (dibi::BINARY)
|
||||
* @return string decoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
|
@@ -226,17 +226,17 @@ class DibiPdoDriver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Encodes data for use in an SQL statement.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_TEXT, dibi::FIELD_BOOL, ...)
|
||||
* @param string type (dibi::TEXT, dibi::BOOL, ...)
|
||||
* @return string encoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function escape($value, $type)
|
||||
{
|
||||
switch ($type) {
|
||||
case dibi::FIELD_TEXT:
|
||||
case dibi::TEXT:
|
||||
return $this->connection->quote($value, PDO::PARAM_STR);
|
||||
|
||||
case dibi::FIELD_BINARY:
|
||||
case dibi::BINARY:
|
||||
return $this->connection->quote($value, PDO::PARAM_LOB);
|
||||
|
||||
case dibi::IDENTIFIER:
|
||||
@@ -266,13 +266,13 @@ class DibiPdoDriver extends DibiObject implements IDibiDriver
|
||||
return $value;
|
||||
}
|
||||
|
||||
case dibi::FIELD_BOOL:
|
||||
case dibi::BOOL:
|
||||
return $this->connection->quote($value, PDO::PARAM_BOOL);
|
||||
|
||||
case dibi::FIELD_DATE:
|
||||
case dibi::DATE:
|
||||
return date("'Y-m-d'", $value);
|
||||
|
||||
case dibi::FIELD_DATETIME:
|
||||
case dibi::DATETIME:
|
||||
return date("'Y-m-d H:i:s'", $value);
|
||||
|
||||
default:
|
||||
@@ -285,7 +285,7 @@ class DibiPdoDriver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Decodes data from result set.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_BINARY)
|
||||
* @param string type (dibi::BINARY)
|
||||
* @return string decoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
|
@@ -233,21 +233,21 @@ class DibiPostgreDriver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Encodes data for use in an SQL statement.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_TEXT, dibi::FIELD_BOOL, ...)
|
||||
* @param string type (dibi::TEXT, dibi::BOOL, ...)
|
||||
* @return string encoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function escape($value, $type)
|
||||
{
|
||||
switch ($type) {
|
||||
case dibi::FIELD_TEXT:
|
||||
case dibi::TEXT:
|
||||
if ($this->escMethod) {
|
||||
return "'" . pg_escape_string($this->connection, $value) . "'";
|
||||
} else {
|
||||
return "'" . pg_escape_string($value) . "'";
|
||||
}
|
||||
|
||||
case dibi::FIELD_BINARY:
|
||||
case dibi::BINARY:
|
||||
if ($this->escMethod) {
|
||||
return "'" . pg_escape_bytea($this->connection, $value) . "'";
|
||||
} else {
|
||||
@@ -264,13 +264,13 @@ class DibiPostgreDriver extends DibiObject implements IDibiDriver
|
||||
return substr($value, 0, $a) . '."' . str_replace('"', '""', substr($value, $a + 1)) . '"';
|
||||
}
|
||||
|
||||
case dibi::FIELD_BOOL:
|
||||
case dibi::BOOL:
|
||||
return $value ? 'TRUE' : 'FALSE';
|
||||
|
||||
case dibi::FIELD_DATE:
|
||||
case dibi::DATE:
|
||||
return date("'Y-m-d'", $value);
|
||||
|
||||
case dibi::FIELD_DATETIME:
|
||||
case dibi::DATETIME:
|
||||
return date("'Y-m-d H:i:s'", $value);
|
||||
|
||||
default:
|
||||
@@ -283,14 +283,14 @@ class DibiPostgreDriver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Decodes data from result set.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_BINARY)
|
||||
* @param string type (dibi::BINARY)
|
||||
* @return string decoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function unescape($value, $type)
|
||||
{
|
||||
switch ($type) {
|
||||
case dibi::FIELD_BINARY:
|
||||
case dibi::BINARY:
|
||||
return pg_unescape_bytea($value);
|
||||
|
||||
default:
|
||||
@@ -438,7 +438,7 @@ class DibiPostgreDriver extends DibiObject implements IDibiDriver
|
||||
*/
|
||||
public function getColumns($table)
|
||||
{
|
||||
$_table = $this->escape($table, dibi::FIELD_TEXT);
|
||||
$_table = $this->escape($table, dibi::TEXT);
|
||||
$this->query("
|
||||
SELECT indkey
|
||||
FROM pg_class
|
||||
@@ -480,7 +480,7 @@ class DibiPostgreDriver extends DibiObject implements IDibiDriver
|
||||
*/
|
||||
public function getIndexes($table)
|
||||
{
|
||||
$_table = $this->escape($table, dibi::FIELD_TEXT);
|
||||
$_table = $this->escape($table, dibi::TEXT);
|
||||
$this->query("
|
||||
SELECT ordinal_position, column_name
|
||||
FROM information_schema.columns
|
||||
|
@@ -220,18 +220,18 @@ class DibiSqliteDriver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Encodes data for use in an SQL statement.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_TEXT, dibi::FIELD_BOOL, ...)
|
||||
* @param string type (dibi::TEXT, dibi::BOOL, ...)
|
||||
* @return string encoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function escape($value, $type)
|
||||
{
|
||||
switch ($type) {
|
||||
case dibi::FIELD_TEXT:
|
||||
case dibi::FIELD_BINARY:
|
||||
case dibi::TEXT:
|
||||
case dibi::BINARY:
|
||||
return "'" . sqlite_escape_string($value) . "'";
|
||||
|
||||
/*case dibi::FIELD_BINARY: // SQLite 3
|
||||
/*case dibi::BINARY: // SQLite 3
|
||||
static $hex = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
|
||||
$value = (string) $value;
|
||||
$len = strlen($value);
|
||||
@@ -244,13 +244,13 @@ class DibiSqliteDriver extends DibiObject implements IDibiDriver
|
||||
case dibi::IDENTIFIER:
|
||||
return '[' . str_replace('.', '].[', strtr($value, '[]', ' ')) . ']';
|
||||
|
||||
case dibi::FIELD_BOOL:
|
||||
case dibi::BOOL:
|
||||
return $value ? 1 : 0;
|
||||
|
||||
case dibi::FIELD_DATE:
|
||||
case dibi::DATE:
|
||||
return date($this->fmtDate, $value);
|
||||
|
||||
case dibi::FIELD_DATETIME:
|
||||
case dibi::DATETIME:
|
||||
return date($this->fmtDateTime, $value);
|
||||
|
||||
default:
|
||||
@@ -263,7 +263,7 @@ class DibiSqliteDriver extends DibiObject implements IDibiDriver
|
||||
/**
|
||||
* Decodes data from result set.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_BINARY)
|
||||
* @param string type (dibi::BINARY)
|
||||
* @return string decoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
|
@@ -492,11 +492,11 @@ class DibiConnection extends DibiObject
|
||||
/**
|
||||
* Encodes data for use in an SQL statement.
|
||||
* @param string unescaped string
|
||||
* @param string type (dibi::FIELD_TEXT, dibi::FIELD_BOOL, ...)
|
||||
* @param string type (dibi::TEXT, dibi::BOOL, ...)
|
||||
* @return string escaped and quoted string
|
||||
* @deprecated
|
||||
*/
|
||||
public function escape($value, $type = dibi::FIELD_TEXT)
|
||||
public function escape($value, $type = dibi::TEXT)
|
||||
{
|
||||
trigger_error('Deprecated: use getDriver()->escape(...) instead.', E_USER_WARNING);
|
||||
$this->connect(); // MySQL & PDO require connection
|
||||
@@ -508,11 +508,11 @@ class DibiConnection extends DibiObject
|
||||
/**
|
||||
* Decodes data from result set.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_BINARY)
|
||||
* @param string type (dibi::BINARY)
|
||||
* @return string decoded value
|
||||
* @deprecated
|
||||
*/
|
||||
public function unescape($value, $type = dibi::FIELD_BINARY)
|
||||
public function unescape($value, $type = dibi::BINARY)
|
||||
{
|
||||
trigger_error('Deprecated: use getDriver()->unescape(...) instead.', E_USER_WARNING);
|
||||
return $this->driver->unescape($value, $type);
|
||||
|
@@ -476,17 +476,17 @@ class DibiColumnInfo extends DibiObject
|
||||
public static function detectType($type)
|
||||
{
|
||||
static $patterns = array(
|
||||
'BYTE|COUNTER|SERIAL|INT|LONG' => dibi::FIELD_INTEGER,
|
||||
'CURRENCY|REAL|MONEY|FLOAT|DOUBLE|DECIMAL|NUMERIC|NUMBER' => dibi::FIELD_FLOAT,
|
||||
'^TIME$' => dibi::FIELD_TIME,
|
||||
'TIME' => dibi::FIELD_DATETIME, // DATETIME, TIMESTAMP
|
||||
'YEAR|DATE' => dibi::FIELD_DATE,
|
||||
'BYTEA|BLOB|BIN' => dibi::FIELD_BINARY,
|
||||
'BOOL|BIT' => dibi::FIELD_BOOL,
|
||||
'BYTE|COUNTER|SERIAL|INT|LONG' => dibi::INTEGER,
|
||||
'CURRENCY|REAL|MONEY|FLOAT|DOUBLE|DECIMAL|NUMERIC|NUMBER' => dibi::FLOAT,
|
||||
'^TIME$' => dibi::TIME,
|
||||
'TIME' => dibi::DATETIME, // DATETIME, TIMESTAMP
|
||||
'YEAR|DATE' => dibi::DATE,
|
||||
'BYTEA|BLOB|BIN' => dibi::BINARY,
|
||||
'BOOL|BIT' => dibi::BOOL,
|
||||
);
|
||||
|
||||
if (!isset(self::$types[$type])) {
|
||||
self::$types[$type] = dibi::FIELD_TEXT;
|
||||
self::$types[$type] = dibi::TEXT;
|
||||
foreach ($patterns as $s => $val) {
|
||||
if (preg_match("#$s#i", $type)) {
|
||||
return self::$types[$type] = $val;
|
||||
|
@@ -441,7 +441,7 @@ class DibiResult extends DibiObject implements IDataSource
|
||||
/**
|
||||
* Define column type.
|
||||
* @param string column
|
||||
* @param string type (use constant Dibi::FIELD_*)
|
||||
* @param string type (use constant Dibi::*)
|
||||
* @param string optional format
|
||||
* @return void
|
||||
*/
|
||||
@@ -500,24 +500,24 @@ class DibiResult extends DibiObject implements IDataSource
|
||||
}
|
||||
|
||||
switch ($type) {
|
||||
case dibi::FIELD_TEXT:
|
||||
case dibi::TEXT:
|
||||
return (string) $value;
|
||||
|
||||
case dibi::FIELD_BINARY:
|
||||
case dibi::BINARY:
|
||||
return $this->getDriver()->unescape($value, $type);
|
||||
|
||||
case dibi::FIELD_INTEGER:
|
||||
case dibi::INTEGER:
|
||||
return (int) $value;
|
||||
|
||||
case dibi::FIELD_FLOAT:
|
||||
case dibi::FLOAT:
|
||||
return (float) $value;
|
||||
|
||||
case dibi::FIELD_DATE:
|
||||
case dibi::FIELD_DATETIME:
|
||||
case dibi::DATE:
|
||||
case dibi::DATETIME:
|
||||
$value = is_numeric($value) ? (int) $value : strtotime($value);
|
||||
return $format === NULL ? $value : date($format, $value);
|
||||
|
||||
case dibi::FIELD_BOOL:
|
||||
case dibi::BOOL:
|
||||
return ((bool) $value) && $value !== 'f' && $value !== 'F';
|
||||
|
||||
default:
|
||||
|
@@ -316,7 +316,7 @@ final class DibiTranslator extends DibiObject
|
||||
return $value === NULL ? 'NULL' : $this->driver->escape($value, $modifier);
|
||||
|
||||
case 'sn': // string or NULL
|
||||
return $value == '' ? 'NULL' : $this->driver->escape($value, dibi::FIELD_TEXT); // notice two equal signs
|
||||
return $value == '' ? 'NULL' : $this->driver->escape($value, dibi::TEXT); // notice two equal signs
|
||||
|
||||
case 'i': // signed int
|
||||
case 'u': // unsigned int, ignored
|
||||
@@ -383,13 +383,13 @@ final class DibiTranslator extends DibiObject
|
||||
|
||||
// without modifier procession
|
||||
if (is_string($value))
|
||||
return $this->driver->escape($value, dibi::FIELD_TEXT);
|
||||
return $this->driver->escape($value, dibi::TEXT);
|
||||
|
||||
if (is_int($value) || is_float($value))
|
||||
return rtrim(rtrim(number_format($value, 5, '.', ''), '0'), '.');
|
||||
|
||||
if (is_bool($value))
|
||||
return $this->driver->escape($value, dibi::FIELD_BOOL);
|
||||
return $this->driver->escape($value, dibi::BOOL);
|
||||
|
||||
if ($value === NULL)
|
||||
return 'NULL';
|
||||
@@ -491,10 +491,10 @@ final class DibiTranslator extends DibiObject
|
||||
return $this->delimite($matches[2]);
|
||||
|
||||
if ($matches[3]) // SQL strings: '...'
|
||||
return $this->driver->escape( str_replace("''", "'", $matches[4]), dibi::FIELD_TEXT);
|
||||
return $this->driver->escape( str_replace("''", "'", $matches[4]), dibi::TEXT);
|
||||
|
||||
if ($matches[5]) // SQL strings: "..."
|
||||
return $this->driver->escape( str_replace('""', '"', $matches[6]), dibi::FIELD_TEXT);
|
||||
return $this->driver->escape( str_replace('""', '"', $matches[6]), dibi::TEXT);
|
||||
|
||||
if ($matches[7]) { // string quote
|
||||
$this->hasError = TRUE;
|
||||
|
@@ -204,7 +204,7 @@ interface IDibiDriver
|
||||
/**
|
||||
* Encodes data for use in an SQL statement.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_TEXT, dibi::FIELD_BOOL, ...)
|
||||
* @param string type (dibi::TEXT, dibi::BOOL, ...)
|
||||
* @return string encoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
@@ -215,7 +215,7 @@ interface IDibiDriver
|
||||
/**
|
||||
* Decodes data from result set.
|
||||
* @param string value
|
||||
* @param string type (dibi::FIELD_BINARY)
|
||||
* @param string type (dibi::BINARY)
|
||||
* @return string decoded value
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
|
@@ -15,8 +15,8 @@ dibi::connect(array(
|
||||
$res = dibi::query('SELECT * FROM [customers]');
|
||||
|
||||
// auto-converts this column to integer
|
||||
$res->setType('customer_id', Dibi::FIELD_INTEGER);
|
||||
$res->setType('added', Dibi::FIELD_DATETIME, 'H:i j.n.Y');
|
||||
$res->setType('customer_id', Dibi::INTEGER);
|
||||
$res->setType('added', Dibi::DATETIME, 'H:i j.n.Y');
|
||||
|
||||
$row = $res->fetch();
|
||||
Debug::dump($row);
|
||||
|
Reference in New Issue
Block a user