mirror of
https://github.com/dg/dibi.git
synced 2025-08-05 05:37:39 +02:00
- DibiFluent - added support for nested selects
- DibiFluent::__toString() returns NOT highlighted SQL
This commit is contained in:
@@ -239,6 +239,26 @@ class DibiConnection extends DibiObject
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generates and returns SQL query.
|
||||||
|
* @param array|mixed one or more arguments
|
||||||
|
* @return string
|
||||||
|
* @throws DibiException
|
||||||
|
*/
|
||||||
|
final public function sql($args)
|
||||||
|
{
|
||||||
|
$args = func_get_args();
|
||||||
|
$this->connect();
|
||||||
|
$trans = new DibiTranslator($this->driver);
|
||||||
|
if ($trans->translate($args)) {
|
||||||
|
return $trans->sql;
|
||||||
|
} else {
|
||||||
|
throw new DibiException('SQL translate error: ' . $trans->sql);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates and prints SQL query.
|
* Generates and prints SQL query.
|
||||||
* @param array|mixed one or more arguments
|
* @param array|mixed one or more arguments
|
||||||
|
@@ -122,6 +122,9 @@ class DibiFluent extends DibiObject
|
|||||||
} elseif (is_string($arg) && preg_match('#^[a-z][a-z0-9_.]*$#i', $arg)) { // identifier
|
} elseif (is_string($arg) && preg_match('#^[a-z][a-z0-9_.]*$#i', $arg)) { // identifier
|
||||||
$args = array('%n', $arg);
|
$args = array('%n', $arg);
|
||||||
|
|
||||||
|
} elseif ($arg instanceof self) {
|
||||||
|
$args = array_merge(array('('), $arg->_export(), array(')'));
|
||||||
|
|
||||||
} elseif (is_array($arg)) { // any array
|
} elseif (is_array($arg)) { // any array
|
||||||
if (isset(self::$modifiers[$clause])) {
|
if (isset(self::$modifiers[$clause])) {
|
||||||
$args = array(self::$modifiers[$clause], $arg);
|
$args = array(self::$modifiers[$clause], $arg);
|
||||||
@@ -383,14 +386,12 @@ class DibiFluent extends DibiObject
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns (highlighted) SQL query.
|
* Returns SQL query.
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
final public function __toString()
|
final public function __toString()
|
||||||
{
|
{
|
||||||
ob_start();
|
return $this->connection->sql($this->_export());
|
||||||
$this->test();
|
|
||||||
return ob_get_clean();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user