|
|
@ -27,19 +27,21 @@ use yii\db\Exception; |
|
|
|
* |
|
|
|
* |
|
|
|
* ~~~ |
|
|
|
* ~~~ |
|
|
|
* $connection = \yii\db\dao\Connection::create($dsn, $username, $password); |
|
|
|
* $connection = \yii\db\dao\Connection::create($dsn, $username, $password); |
|
|
|
* $connection->open(); // same as: $connection->active = true; |
|
|
|
* $connection->active = true; // same as: $connection->open(); |
|
|
|
* ~~~ |
|
|
|
* ~~~ |
|
|
|
* |
|
|
|
* |
|
|
|
* After the DB connection is established, one can execute a SQL statement like the following: |
|
|
|
* After the DB connection is established, one can execute SQL statements like the following: |
|
|
|
* |
|
|
|
* |
|
|
|
* ~~~ |
|
|
|
* ~~~ |
|
|
|
* $command = $connection->createCommand('SELECT * FROM tbl_post'); |
|
|
|
* $command = $connection->createCommand('SELECT * FROM tbl_post'); |
|
|
|
* $command->execute(); // a non-query SQL statement execution |
|
|
|
* $posts = $command->queryAll(); |
|
|
|
* // or execute an SQL query and return the results as an array |
|
|
|
* $command = $connection->createCommand('UPDATE tbl_post SET status=1'); |
|
|
|
* $rows = $command->queryAll(); |
|
|
|
* $command->execute(); |
|
|
|
* ~~~ |
|
|
|
* ~~~ |
|
|
|
* |
|
|
|
* |
|
|
|
* One can also do prepared SQL execution and bind parameters to the prepared SQL: |
|
|
|
* One can also do prepared SQL execution and bind parameters to the prepared SQL. |
|
|
|
|
|
|
|
* When the parameters are coming from user input, you should use this approach |
|
|
|
|
|
|
|
* to prevent SQL injection attacks. The following is an example: |
|
|
|
* |
|
|
|
* |
|
|
|
* ~~~ |
|
|
|
* ~~~ |
|
|
|
* $command = $connection->createCommand('SELECT * FROM tbl_post WHERE id=:id'); |
|
|
|
* $command = $connection->createCommand('SELECT * FROM tbl_post WHERE id=:id'); |
|
|
@ -47,7 +49,10 @@ use yii\db\Exception; |
|
|
|
* $post = $command->query(); |
|
|
|
* $post = $command->query(); |
|
|
|
* ~~~ |
|
|
|
* ~~~ |
|
|
|
* |
|
|
|
* |
|
|
|
* DB transaction may also be used for DBMS that supports it. For example, |
|
|
|
* For more information about how to perform various DB queries, please refer to [[Command]]. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* If the underlying DBMS supports transactions, you can perform transactional SQL queries |
|
|
|
|
|
|
|
* like the following: |
|
|
|
* |
|
|
|
* |
|
|
|
* ~~~ |
|
|
|
* ~~~ |
|
|
|
* $transaction = $connection->beginTransaction(); |
|
|
|
* $transaction = $connection->beginTransaction(); |
|
|
@ -62,9 +67,8 @@ use yii\db\Exception; |
|
|
|
* } |
|
|
|
* } |
|
|
|
* ~~~ |
|
|
|
* ~~~ |
|
|
|
* |
|
|
|
* |
|
|
|
* Since Connection extends from [[\yii\base\ApplicationComponent]], it can |
|
|
|
* Connection is often used as an [[\yii\base\ApplicationComponent|application component]] and configured in the application |
|
|
|
* be used as an application component and be configured in application configuration, |
|
|
|
* configuration like the following: |
|
|
|
* like the following, |
|
|
|
|
|
|
|
* |
|
|
|
* |
|
|
|
* ~~~ |
|
|
|
* ~~~ |
|
|
|
* array( |
|
|
|
* array( |
|
|
@ -89,10 +93,7 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
* @var string the Data Source Name, or DSN, contains the information required to connect to the database. |
|
|
|
* @var string the Data Source Name, or DSN, contains the information required to connect to the database. |
|
|
|
* Please refer to the [PHP manual](http://www.php.net/manual/en/function.PDO-construct.php) on |
|
|
|
* Please refer to the [PHP manual](http://www.php.net/manual/en/function.PDO-construct.php) on |
|
|
|
* the format of the DSN string. |
|
|
|
* the format of the DSN string. |
|
|
|
* |
|
|
|
* @see charset |
|
|
|
* Note that if your database is using GBK or BIG5 charset, we highly recommend you |
|
|
|
|
|
|
|
* to upgrade to PHP 5.3.6+ and specify charset via DSN like the following to prevent |
|
|
|
|
|
|
|
* from hacking: `mysql:dbname=mydatabase;host=127.0.0.1;charset=GBK;`. |
|
|
|
|
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public $dsn; |
|
|
|
public $dsn; |
|
|
|
/** |
|
|
|
/** |
|
|
@ -130,6 +131,7 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
public $schemaCachingDuration = -1; |
|
|
|
public $schemaCachingDuration = -1; |
|
|
|
/** |
|
|
|
/** |
|
|
|
* @var array list of tables whose metadata should NOT be cached. Defaults to empty array. |
|
|
|
* @var array list of tables whose metadata should NOT be cached. Defaults to empty array. |
|
|
|
|
|
|
|
* The table names may contain schema prefix, if any. Do not quote the table names. |
|
|
|
* @see schemaCachingDuration |
|
|
|
* @see schemaCachingDuration |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public $schemaCachingExclude = array(); |
|
|
|
public $schemaCachingExclude = array(); |
|
|
@ -156,7 +158,7 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public $queryCachingDuration = -1; |
|
|
|
public $queryCachingDuration = -1; |
|
|
|
/** |
|
|
|
/** |
|
|
|
* @var CCacheDependency the dependency that will be used when saving query results into cache. |
|
|
|
* @var \yii\caching\Dependency the dependency that will be used when saving query results into cache. |
|
|
|
* Defaults to null, meaning no dependency. |
|
|
|
* Defaults to null, meaning no dependency. |
|
|
|
* @see queryCachingDuration |
|
|
|
* @see queryCachingDuration |
|
|
|
*/ |
|
|
|
*/ |
|
|
@ -189,8 +191,8 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
* @var boolean whether to turn on prepare emulation. Defaults to false, meaning PDO |
|
|
|
* @var boolean whether to turn on prepare emulation. Defaults to false, meaning PDO |
|
|
|
* will use the native prepare support if available. For some databases (such as MySQL), |
|
|
|
* will use the native prepare support if available. For some databases (such as MySQL), |
|
|
|
* this may need to be set true so that PDO can emulate the prepare support to bypass |
|
|
|
* this may need to be set true so that PDO can emulate the prepare support to bypass |
|
|
|
* the buggy native prepare support. Note, this property is only effective for PHP 5.1.3 or above. |
|
|
|
* the buggy native prepare support. |
|
|
|
* The default value is null, which will not change the ATTR_EMULATE_PREPARES value of PDO. |
|
|
|
* The default value is null, which means the PDO ATTR_EMULATE_PREPARES value will not be changed. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public $emulatePrepare; |
|
|
|
public $emulatePrepare; |
|
|
|
/** |
|
|
|
/** |
|
|
@ -209,30 +211,35 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public $enableProfiling = false; |
|
|
|
public $enableProfiling = false; |
|
|
|
/** |
|
|
|
/** |
|
|
|
* @var string the default prefix for table names. Defaults to null, meaning no table prefix. |
|
|
|
* @var string the default prefix for table names. Defaults to null, meaning not using table prefix. |
|
|
|
* By setting this property, any token like '{{tableName}}' in [[Command::text]] will |
|
|
|
* By setting this property, any token like '{{TableName}}' in [[Command::sql]] will |
|
|
|
* be replaced with 'prefixTableName', where 'prefix' refers to this property value. |
|
|
|
* be replaced with 'prefixTableName', where 'prefix' refers to this property value. |
|
|
|
* For example, '{{post}}' becomes 'tbl_post', if 'tbl_' is set as the table prefix. |
|
|
|
* For example, '{{post}}' becomes 'tbl_post', if 'tbl_' is set as the table prefix. |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* Note that if you set this property to be an empty string, then '{{post}}' will be replaced |
|
|
|
|
|
|
|
* with 'post'. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public $tablePrefix; |
|
|
|
public $tablePrefix; |
|
|
|
/** |
|
|
|
/** |
|
|
|
* @var array list of SQL statements that should be executed right after the DB connection is established. |
|
|
|
* @var array a list of SQL statements that should be executed right after the DB connection is established. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public $initSQLs; |
|
|
|
public $initSQLs; |
|
|
|
/** |
|
|
|
/** |
|
|
|
* @var array mapping between PDO drivers and schema classes. |
|
|
|
* @var array mapping between PDO driver names and [[Schema]] classes. |
|
|
|
* The keys of the array are PDO driver names while the values the corresponding |
|
|
|
* The keys of the array are PDO driver names while the values the corresponding |
|
|
|
* schema class name or configuration. Please refer to [[\Yii::createComponent]] for |
|
|
|
* schema class name or configuration. Please refer to [[\Yii::createComponent]] for |
|
|
|
* details on how to specify a configuration. |
|
|
|
* details on how to specify a configuration. |
|
|
|
* |
|
|
|
* |
|
|
|
* This property is mainly used by [[getSchema]] when fetching the database schema information. |
|
|
|
* This property is mainly used by [[getSchema]] when fetching the database schema information. |
|
|
|
|
|
|
|
* You normally do not need to set this property unless you want to use your own |
|
|
|
|
|
|
|
* [[Schema]] class to support DBMS that is not supported by Yii. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public $schemaMap = array( |
|
|
|
public $schemaMap = array( |
|
|
|
'pgsql' => '\yii\db\dao\pgsql\Schema', // PostgreSQL |
|
|
|
'pgsql' => '\yii\db\dao\pgsql\Schema', // PostgreSQL |
|
|
|
'mysqli' => '\yii\db\dao\mysql\Schema', // MySQL |
|
|
|
'mysqli' => '\yii\db\dao\mysql\Schema', // MySQL |
|
|
|
'mysql' => '\yii\db\dao\mysql\Schema', // MySQL |
|
|
|
'mysql' => '\yii\db\dao\mysql\Schema', // MySQL |
|
|
|
'sqlite' => '\yii\db\dao\sqlite\Schema', // sqlite 3 |
|
|
|
'sqlite' => '\yii\db\dao\sqlite\Schema', // sqlite 3 |
|
|
|
'sqlite2' => '\yii\db\dao\\sqlite\Schema', // sqlite 2 |
|
|
|
'sqlite2' => '\yii\db\dao\sqlite\Schema', // sqlite 2 |
|
|
|
'mssql' => '\yii\db\dao\mssql\Schema', // Mssql driver on windows hosts |
|
|
|
'mssql' => '\yii\db\dao\mssql\Schema', // Mssql driver on windows hosts |
|
|
|
'dblib' => '\yii\db\dao\mssql\Schema', // dblib drivers on linux (and maybe others os) hosts |
|
|
|
'dblib' => '\yii\db\dao\mssql\Schema', // dblib drivers on linux (and maybe others os) hosts |
|
|
|
'sqlsrv' => '\yii\db\dao\mssql\Schema', // Mssql |
|
|
|
'sqlsrv' => '\yii\db\dao\mssql\Schema', // Mssql |
|
|
@ -306,9 +313,9 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
* [[queryCachingCount]]. |
|
|
|
* [[queryCachingCount]]. |
|
|
|
* @param integer $duration the number of seconds that query results may remain valid in cache. |
|
|
|
* @param integer $duration the number of seconds that query results may remain valid in cache. |
|
|
|
* See [[queryCachingDuration]] for more details. |
|
|
|
* See [[queryCachingDuration]] for more details. |
|
|
|
* @param CCacheDependency $dependency the dependency for the cached query result. |
|
|
|
* @param \yii\caching\Dependency $dependency the dependency for the cached query result. |
|
|
|
* See [[queryCachingDependency]] for more details. |
|
|
|
* See [[queryCachingDependency]] for more details. |
|
|
|
* @param integer $queryCount number of SQL queries that need to be cached after calling this method. |
|
|
|
* @param integer $queryCount the number of SQL queries that need to be cached after calling this method. |
|
|
|
* See [[queryCachingCount]] for more details. |
|
|
|
* See [[queryCachingCount]] for more details. |
|
|
|
* @return Connection the connection instance itself. |
|
|
|
* @return Connection the connection instance itself. |
|
|
|
*/ |
|
|
|
*/ |
|
|
@ -332,7 +339,7 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
throw new Exception('Connection.dsn cannot be empty.'); |
|
|
|
throw new Exception('Connection.dsn cannot be empty.'); |
|
|
|
} |
|
|
|
} |
|
|
|
try { |
|
|
|
try { |
|
|
|
\Yii::trace('Opening DB connection', __CLASS__); |
|
|
|
\Yii::trace('Opening DB connection: ' . $this->dsn, __CLASS__); |
|
|
|
$this->pdo = $this->createPdoInstance(); |
|
|
|
$this->pdo = $this->createPdoInstance(); |
|
|
|
$this->initConnection($this->pdo); |
|
|
|
$this->initConnection($this->pdo); |
|
|
|
} |
|
|
|
} |
|
|
@ -355,17 +362,18 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
public function close() |
|
|
|
public function close() |
|
|
|
{ |
|
|
|
{ |
|
|
|
if ($this->pdo !== null) { |
|
|
|
if ($this->pdo !== null) { |
|
|
|
\Yii::trace('Closing DB connection', __CLASS__); |
|
|
|
\Yii::trace('Closing DB connection: ' . $this->dsn, __CLASS__); |
|
|
|
$this->pdo = null; |
|
|
|
$this->pdo = null; |
|
|
|
$this->_schema = null; |
|
|
|
$this->_schema = null; |
|
|
|
|
|
|
|
$this->_transaction = null; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Creates the PDO instance. |
|
|
|
* Creates the PDO instance. |
|
|
|
* This method is called by [[open]] to establish a DB connection. |
|
|
|
* This method is called by [[open]] to establish a DB connection. |
|
|
|
* The default implementation will create a PHP `PDO` instance. |
|
|
|
* The default implementation will create a PHP PDO instance. |
|
|
|
* You may override this method if the default `PDO` needs to be adapted for certain DBMS. |
|
|
|
* You may override this method if the default PDO needs to be adapted for certain DBMS. |
|
|
|
* @return \PDO the pdo instance |
|
|
|
* @return \PDO the pdo instance |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
protected function createPdoInstance() |
|
|
|
protected function createPdoInstance() |
|
|
@ -374,7 +382,7 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
if (($pos = strpos($this->dsn, ':')) !== false) { |
|
|
|
if (($pos = strpos($this->dsn, ':')) !== false) { |
|
|
|
$driver = strtolower(substr($this->dsn, 0, $pos)); |
|
|
|
$driver = strtolower(substr($this->dsn, 0, $pos)); |
|
|
|
if ($driver === 'mssql' || $driver === 'dblib' || $driver === 'sqlsrv') { |
|
|
|
if ($driver === 'mssql' || $driver === 'dblib' || $driver === 'sqlsrv') { |
|
|
|
$pdoClass = '\yii\db\dao\mssql\PDO'; |
|
|
|
$pdoClass = 'mssql\PDO'; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return new $pdoClass($this->dsn, $this->username, $this->password, $this->attributes); |
|
|
|
return new $pdoClass($this->dsn, $this->username, $this->password, $this->attributes); |
|
|
@ -383,7 +391,7 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
/** |
|
|
|
/** |
|
|
|
* Initializes the DB connection. |
|
|
|
* Initializes the DB connection. |
|
|
|
* This method is invoked right after the DB connection is established. |
|
|
|
* This method is invoked right after the DB connection is established. |
|
|
|
* The default implementation sets the [[charset]] and executes SQLs specified |
|
|
|
* The default implementation sets the database [[charset]] and executes SQLs specified |
|
|
|
* in [[initSQLs]]. |
|
|
|
* in [[initSQLs]]. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
protected function initConnection() |
|
|
|
protected function initConnection() |
|
|
@ -393,8 +401,7 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
$this->pdo->setAttribute(\PDO::ATTR_EMULATE_PREPARES, $this->emulatePrepare); |
|
|
|
$this->pdo->setAttribute(\PDO::ATTR_EMULATE_PREPARES, $this->emulatePrepare); |
|
|
|
} |
|
|
|
} |
|
|
|
if ($this->charset !== null) { |
|
|
|
if ($this->charset !== null) { |
|
|
|
$driver = strtolower($this->pdo->getAttribute(\PDO::ATTR_DRIVER_NAME)); |
|
|
|
if (in_array($this->getDriverName(), array('pgsql', 'mysql', 'mysqli'))) { |
|
|
|
if (in_array($driver, array('pgsql', 'mysql', 'mysqli'))) { |
|
|
|
|
|
|
|
$this->pdo->exec('SET NAMES ' . $this->pdo->quote($this->charset)); |
|
|
|
$this->pdo->exec('SET NAMES ' . $this->pdo->quote($this->charset)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -407,10 +414,12 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Creates a command for execution. |
|
|
|
* Creates a command for execution. |
|
|
|
* @param mixed $query the DB query to be executed. This can be either a string representing a SQL statement, |
|
|
|
* @param mixed $query the DB query to be executed. This can be: |
|
|
|
* or an array representing different fragments of a SQL statement. Please refer to [[Command::__construct]] |
|
|
|
* |
|
|
|
* for more details about how to pass an array as the query. If this parameter is not given, |
|
|
|
* - a string representing the SQL statement to be executed |
|
|
|
* you will have to call query builder methods in [[Command]] to build the DB query. |
|
|
|
* - a [[Query]] object representing the SQL query |
|
|
|
|
|
|
|
* - an array that will be used to initialize [[Query]] |
|
|
|
|
|
|
|
* - null (default) if the query needs to be built using query builder methods next. |
|
|
|
* @return Command the DB command |
|
|
|
* @return Command the DB command |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public function createCommand($query = null) |
|
|
|
public function createCommand($query = null) |
|
|
@ -432,7 +441,7 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Starts a transaction. |
|
|
|
* Starts a transaction. |
|
|
|
* @return CDbTransaction the transaction initiated |
|
|
|
* @return Transaction the transaction initiated |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public function beginTransaction() |
|
|
|
public function beginTransaction() |
|
|
|
{ |
|
|
|
{ |
|
|
@ -443,8 +452,8 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Returns the database schema for the current connection |
|
|
|
* Returns the metadata information for the underlying database. |
|
|
|
* @return CDbSchema the database schema for the current connection |
|
|
|
* @return Schema the metadata information for the underlying database. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public function getSchema() |
|
|
|
public function getSchema() |
|
|
|
{ |
|
|
|
{ |
|
|
@ -462,6 +471,10 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Returns the query builder for the current DB connection. |
|
|
|
|
|
|
|
* @return QueryBuilder the query builder for the current DB connection. |
|
|
|
|
|
|
|
*/ |
|
|
|
public function getQueryBuilder() |
|
|
|
public function getQueryBuilder() |
|
|
|
{ |
|
|
|
{ |
|
|
|
return $this->getSchema()->getQueryBuilder(); |
|
|
|
return $this->getSchema()->getQueryBuilder(); |
|
|
@ -481,6 +494,7 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Quotes a string value for use in a query. |
|
|
|
* Quotes a string value for use in a query. |
|
|
|
|
|
|
|
* Note that if the parameter is not a string, it will be returned without change. |
|
|
|
* @param string $str string to be quoted |
|
|
|
* @param string $str string to be quoted |
|
|
|
* @return string the properly quoted string |
|
|
|
* @return string the properly quoted string |
|
|
|
* @see http://www.php.net/manual/en/function.PDO-quote.php |
|
|
|
* @see http://www.php.net/manual/en/function.PDO-quote.php |
|
|
@ -504,6 +518,7 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
* Quotes a table name for use in a query. |
|
|
|
* Quotes a table name for use in a query. |
|
|
|
* If the table name contains schema prefix, the prefix will also be properly quoted. |
|
|
|
* If the table name contains schema prefix, the prefix will also be properly quoted. |
|
|
|
* @param string $name table name |
|
|
|
* @param string $name table name |
|
|
|
|
|
|
|
* @param boolean $simple if this is true, then the method will assume $name is a table name without schema prefix. |
|
|
|
* @return string the properly quoted table name |
|
|
|
* @return string the properly quoted table name |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public function quoteTableName($name, $simple = false) |
|
|
|
public function quoteTableName($name, $simple = false) |
|
|
@ -513,13 +528,14 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Quotes a column name for use in a query. |
|
|
|
* Quotes a column name for use in a query. |
|
|
|
* If the column name contains prefix, the prefix will also be properly quoted. |
|
|
|
* If the column name contains table prefix, the prefix will also be properly quoted. |
|
|
|
* @param string $name column name |
|
|
|
* @param string $name column name |
|
|
|
|
|
|
|
* @param boolean $simple if this is true, then the method will assume $name is a column name without table prefix. |
|
|
|
* @return string the properly quoted column name |
|
|
|
* @return string the properly quoted column name |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public function quoteColumnName($name, $simple = false) |
|
|
|
public function quoteColumnName($name, $simple = false) |
|
|
|
{ |
|
|
|
{ |
|
|
|
return $simple ? $this->getSchema()->quoteColumnName($name) : $this->getSchema()->quoteSimpleColumnName($name); |
|
|
|
return $simple ? $this->getSchema()->quoteSimpleColumnName($name) : $this->getSchema()->quoteColumnName($name); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
@ -584,6 +600,7 @@ class Connection extends \yii\base\ApplicationComponent |
|
|
|
* In order to use this method, [[enableProfiling]] has to be set true. |
|
|
|
* In order to use this method, [[enableProfiling]] has to be set true. |
|
|
|
* @return array the first element indicates the number of SQL statements executed, |
|
|
|
* @return array the first element indicates the number of SQL statements executed, |
|
|
|
* and the second element the total time spent in SQL execution. |
|
|
|
* and the second element the total time spent in SQL execution. |
|
|
|
|
|
|
|
* @see \yii\logging\Logger::getProfiling() |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public function getStats() |
|
|
|
public function getStats() |
|
|
|
{ |
|
|
|
{ |
|
|
|