mirror of
https://github.com/dg/dibi.git
synced 2025-08-08 07:06:52 +02:00
- DibiTranslator: empty arrays generate NULL (it may cause an BC break!)
- Dibi: disables magic_quotes_runtime
This commit is contained in:
@@ -26,6 +26,7 @@ if (version_compare(PHP_VERSION, '5.1.0', '<')) {
|
|||||||
throw new Exception('dibi needs PHP 5.1.0 or newer.');
|
throw new Exception('dibi needs PHP 5.1.0 or newer.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@set_magic_quotes_runtime(FALSE); // intentionally @
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -525,7 +526,7 @@ class dibi
|
|||||||
public static function select($args)
|
public static function select($args)
|
||||||
{
|
{
|
||||||
$args = func_get_args();
|
$args = func_get_args();
|
||||||
return self::getConnection()->command()->__call('select', $args);
|
return call_user_func_array(array(self::getConnection(), 'select'), $args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -648,7 +649,8 @@ class dibi
|
|||||||
public static function setSubstFallback($callback)
|
public static function setSubstFallback($callback)
|
||||||
{
|
{
|
||||||
if (!is_callable($callback)) {
|
if (!is_callable($callback)) {
|
||||||
throw new InvalidArgumentException("Invalid callback.");
|
$able = is_callable($callback, TRUE, $textual);
|
||||||
|
throw new InvalidArgumentException("Handler '$textual' is not " . ($able ? 'callable.' : 'valid PHP callback.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
self::$substFallBack = $callback;
|
self::$substFallBack = $callback;
|
||||||
|
@@ -260,7 +260,7 @@ final class DibiTranslator extends DibiObject
|
|||||||
$pair = explode('%', $k, 2); // split into identifier & modifier
|
$pair = explode('%', $k, 2); // split into identifier & modifier
|
||||||
$vx[] = $this->formatValue($v, isset($pair[1]) ? $pair[1] : FALSE);
|
$vx[] = $this->formatValue($v, isset($pair[1]) ? $pair[1] : FALSE);
|
||||||
}
|
}
|
||||||
return '(' . implode(', ', $vx) . ')';
|
return '(' . ($vx ? implode(', ', $vx) : 'NULL') . ')';
|
||||||
|
|
||||||
|
|
||||||
case 'v': // (key, key, ...) VALUES (val, val, ...)
|
case 'v': // (key, key, ...) VALUES (val, val, ...)
|
||||||
@@ -291,7 +291,7 @@ final class DibiTranslator extends DibiObject
|
|||||||
foreach ($value as $v) {
|
foreach ($value as $v) {
|
||||||
$vx[] = $this->formatValue($v, $modifier);
|
$vx[] = $this->formatValue($v, $modifier);
|
||||||
}
|
}
|
||||||
return implode(', ', $vx);
|
return $vx ? implode(', ', $vx) : 'NULL';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -122,8 +122,6 @@ interface IDibiDriver
|
|||||||
*/
|
*/
|
||||||
function connect(array &$config);
|
function connect(array &$config);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Disconnects from a database.
|
* Disconnects from a database.
|
||||||
* @return void
|
* @return void
|
||||||
@@ -131,8 +129,6 @@ interface IDibiDriver
|
|||||||
*/
|
*/
|
||||||
function disconnect();
|
function disconnect();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal: Executes the SQL query.
|
* Internal: Executes the SQL query.
|
||||||
* @param string SQL statement.
|
* @param string SQL statement.
|
||||||
@@ -141,24 +137,18 @@ interface IDibiDriver
|
|||||||
*/
|
*/
|
||||||
function query($sql);
|
function query($sql);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the number of affected rows by the last INSERT, UPDATE or DELETE query.
|
* Gets the number of affected rows by the last INSERT, UPDATE or DELETE query.
|
||||||
* @return int|FALSE number of rows or FALSE on error
|
* @return int|FALSE number of rows or FALSE on error
|
||||||
*/
|
*/
|
||||||
function getAffectedRows();
|
function getAffectedRows();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the ID generated for an AUTO_INCREMENT column by the previous INSERT query.
|
* Retrieves the ID generated for an AUTO_INCREMENT column by the previous INSERT query.
|
||||||
* @return int|FALSE int on success or FALSE on failure
|
* @return int|FALSE int on success or FALSE on failure
|
||||||
*/
|
*/
|
||||||
function getInsertId($sequence);
|
function getInsertId($sequence);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Begins a transaction (if supported).
|
* Begins a transaction (if supported).
|
||||||
* @param string optinal savepoint name
|
* @param string optinal savepoint name
|
||||||
@@ -167,8 +157,6 @@ interface IDibiDriver
|
|||||||
*/
|
*/
|
||||||
function begin($savepoint = NULL);
|
function begin($savepoint = NULL);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Commits statements in a transaction.
|
* Commits statements in a transaction.
|
||||||
* @param string optinal savepoint name
|
* @param string optinal savepoint name
|
||||||
@@ -177,8 +165,6 @@ interface IDibiDriver
|
|||||||
*/
|
*/
|
||||||
function commit($savepoint = NULL);
|
function commit($savepoint = NULL);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Rollback changes in a transaction.
|
* Rollback changes in a transaction.
|
||||||
* @param string optinal savepoint name
|
* @param string optinal savepoint name
|
||||||
@@ -187,8 +173,6 @@ interface IDibiDriver
|
|||||||
*/
|
*/
|
||||||
function rollback($savepoint = NULL);
|
function rollback($savepoint = NULL);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the connection resource.
|
* Returns the connection resource.
|
||||||
* @return mixed
|
* @return mixed
|
||||||
@@ -210,8 +194,6 @@ interface IDibiDriver
|
|||||||
*/
|
*/
|
||||||
function escape($value, $type);
|
function escape($value, $type);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decodes data from result set.
|
* Decodes data from result set.
|
||||||
* @param string value
|
* @param string value
|
||||||
@@ -221,8 +203,6 @@ interface IDibiDriver
|
|||||||
*/
|
*/
|
||||||
function unescape($value, $type);
|
function unescape($value, $type);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Injects LIMIT/OFFSET to the SQL query.
|
* Injects LIMIT/OFFSET to the SQL query.
|
||||||
* @param string &$sql The SQL query that will be modified.
|
* @param string &$sql The SQL query that will be modified.
|
||||||
@@ -244,8 +224,6 @@ interface IDibiDriver
|
|||||||
*/
|
*/
|
||||||
function getRowCount();
|
function getRowCount();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Moves cursor position without fetching row.
|
* Moves cursor position without fetching row.
|
||||||
* @param int the 0-based cursor pos to seek to
|
* @param int the 0-based cursor pos to seek to
|
||||||
@@ -254,8 +232,6 @@ interface IDibiDriver
|
|||||||
*/
|
*/
|
||||||
function seek($row);
|
function seek($row);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetches the row at current position and moves the internal cursor to the next position.
|
* Fetches the row at current position and moves the internal cursor to the next position.
|
||||||
* @param bool TRUE for associative array, FALSE for numeric
|
* @param bool TRUE for associative array, FALSE for numeric
|
||||||
@@ -264,8 +240,6 @@ interface IDibiDriver
|
|||||||
*/
|
*/
|
||||||
function fetch($type);
|
function fetch($type);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Frees the resources allocated for this result set.
|
* Frees the resources allocated for this result set.
|
||||||
* @param resource result set resource
|
* @param resource result set resource
|
||||||
@@ -273,8 +247,6 @@ interface IDibiDriver
|
|||||||
*/
|
*/
|
||||||
function free();
|
function free();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns metadata for all columns in a result set.
|
* Returns metadata for all columns in a result set.
|
||||||
* @return array
|
* @return array
|
||||||
@@ -282,8 +254,6 @@ interface IDibiDriver
|
|||||||
*/
|
*/
|
||||||
function getColumnsMeta();
|
function getColumnsMeta();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the result set resource.
|
* Returns the result set resource.
|
||||||
* @return mixed
|
* @return mixed
|
||||||
@@ -302,8 +272,6 @@ interface IDibiDriver
|
|||||||
*/
|
*/
|
||||||
function getTables();
|
function getTables();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns metadata for all columns in a table.
|
* Returns metadata for all columns in a table.
|
||||||
* @param string
|
* @param string
|
||||||
@@ -311,8 +279,6 @@ interface IDibiDriver
|
|||||||
*/
|
*/
|
||||||
function getColumns($table);
|
function getColumns($table);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns metadata for all indexes in a table.
|
* Returns metadata for all indexes in a table.
|
||||||
* @param string
|
* @param string
|
||||||
@@ -320,8 +286,6 @@ interface IDibiDriver
|
|||||||
*/
|
*/
|
||||||
function getIndexes($table);
|
function getIndexes($table);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns metadata for all foreign keys in a table.
|
* Returns metadata for all foreign keys in a table.
|
||||||
* @param string
|
* @param string
|
||||||
|
@@ -4,8 +4,6 @@
|
|||||||
require_once 'Nette/Debug.php';
|
require_once 'Nette/Debug.php';
|
||||||
require_once '../dibi/dibi.php';
|
require_once '../dibi/dibi.php';
|
||||||
|
|
||||||
|
|
||||||
// required since PHP 5.1.0
|
|
||||||
date_default_timezone_set('Europe/Prague');
|
date_default_timezone_set('Europe/Prague');
|
||||||
|
|
||||||
|
|
||||||
|
@@ -4,6 +4,8 @@
|
|||||||
require_once 'Nette/Debug.php';
|
require_once 'Nette/Debug.php';
|
||||||
require_once '../dibi/dibi.php';
|
require_once '../dibi/dibi.php';
|
||||||
|
|
||||||
|
date_default_timezone_set('Europe/Prague');
|
||||||
|
|
||||||
|
|
||||||
dibi::connect(array(
|
dibi::connect(array(
|
||||||
'driver' => 'sqlite',
|
'driver' => 'sqlite',
|
||||||
|
@@ -4,6 +4,8 @@
|
|||||||
require_once 'Nette/Debug.php';
|
require_once 'Nette/Debug.php';
|
||||||
require_once '../dibi/dibi.php';
|
require_once '../dibi/dibi.php';
|
||||||
|
|
||||||
|
date_default_timezone_set('Europe/Prague');
|
||||||
|
|
||||||
|
|
||||||
dibi::connect(array(
|
dibi::connect(array(
|
||||||
'driver' => 'sqlite',
|
'driver' => 'sqlite',
|
||||||
|
@@ -5,6 +5,8 @@
|
|||||||
require_once 'Nette/Debug.php';
|
require_once 'Nette/Debug.php';
|
||||||
require_once '../dibi/dibi.php';
|
require_once '../dibi/dibi.php';
|
||||||
|
|
||||||
|
date_default_timezone_set('Europe/Prague');
|
||||||
|
|
||||||
|
|
||||||
dibi::connect(array(
|
dibi::connect(array(
|
||||||
'driver' => 'sqlite',
|
'driver' => 'sqlite',
|
||||||
|
@@ -8,7 +8,6 @@ pre.dibi { padding-bottom: 10px; }
|
|||||||
require_once 'Nette/Debug.php';
|
require_once 'Nette/Debug.php';
|
||||||
require_once '../dibi/dibi.php';
|
require_once '../dibi/dibi.php';
|
||||||
|
|
||||||
// required since PHP 5.1.0
|
|
||||||
date_default_timezone_set('Europe/Prague');
|
date_default_timezone_set('Europe/Prague');
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user