mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-26 06:15:19 +08:00
moved Connection::getPdoType() to Command.
This commit is contained in:
@ -144,7 +144,7 @@ class Command extends \yii\base\Component
|
||||
{
|
||||
$this->prepare();
|
||||
if ($dataType === null) {
|
||||
$this->pdoStatement->bindParam($name, $value, $this->connection->getPdoType(gettype($value)));
|
||||
$this->pdoStatement->bindParam($name, $value, $this->getPdoType(gettype($value)));
|
||||
} elseif ($length === null) {
|
||||
$this->pdoStatement->bindParam($name, $value, $dataType);
|
||||
} elseif ($driverOptions === null) {
|
||||
@ -171,7 +171,7 @@ class Command extends \yii\base\Component
|
||||
{
|
||||
$this->prepare();
|
||||
if ($dataType === null) {
|
||||
$this->pdoStatement->bindValue($name, $value, $this->connection->getPdoType(gettype($value)));
|
||||
$this->pdoStatement->bindValue($name, $value, $this->getPdoType(gettype($value)));
|
||||
} else {
|
||||
$this->pdoStatement->bindValue($name, $value, $dataType);
|
||||
}
|
||||
@ -199,7 +199,7 @@ class Command extends \yii\base\Component
|
||||
$type = $value[1];
|
||||
$value = $value[0];
|
||||
} else {
|
||||
$type = $this->connection->getPdoType(gettype($value));
|
||||
$type = $this->getPdoType(gettype($value));
|
||||
}
|
||||
$this->pdoStatement->bindValue($name, $value, $type);
|
||||
$this->_params[$name] = $value;
|
||||
@ -208,6 +208,23 @@ class Command extends \yii\base\Component
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines the PDO type for the give PHP data type.
|
||||
* @param string $type The PHP type (obtained by `gettype()` call).
|
||||
* @return integer the corresponding PDO type
|
||||
* @see http://www.php.net/manual/en/pdo.constants.php
|
||||
*/
|
||||
private function getPdoType($type)
|
||||
{
|
||||
static $typeMap = array(
|
||||
'boolean' => \PDO::PARAM_BOOL,
|
||||
'integer' => \PDO::PARAM_INT,
|
||||
'string' => \PDO::PARAM_STR,
|
||||
'NULL' => \PDO::PARAM_NULL,
|
||||
);
|
||||
return isset($typeMap[$type]) ? $typeMap[$type] : \PDO::PARAM_STR;
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes the SQL statement.
|
||||
* This method should only be used for executing non-query SQL statement, such as `INSERT`, `DELETE`, `UPDATE` SQLs.
|
||||
|
@ -549,23 +549,6 @@ class Connection extends \yii\base\ApplicationComponent
|
||||
return $this->getDriver()->quoteColumnName($name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines the PDO type for the give PHP data type.
|
||||
* @param string $type The PHP type (obtained by `gettype()` call).
|
||||
* @return integer the corresponding PDO type
|
||||
* @see http://www.php.net/manual/en/pdo.constants.php
|
||||
*/
|
||||
public function getPdoType($type)
|
||||
{
|
||||
static $typeMap = array(
|
||||
'boolean' => \PDO::PARAM_BOOL,
|
||||
'integer' => \PDO::PARAM_INT,
|
||||
'string' => \PDO::PARAM_STR,
|
||||
'NULL' => \PDO::PARAM_NULL,
|
||||
);
|
||||
return isset($typeMap[$type]) ? $typeMap[$type] : \PDO::PARAM_STR;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the name of the DB driver for the current [[dsn]].
|
||||
* @return string name of the DB driver
|
||||
|
@ -76,15 +76,6 @@ class ConnectionTest extends \yiiunit\MysqlTestCase
|
||||
$this->assertEquals('(column)', $connection->quoteColumnName('(column)'));
|
||||
}
|
||||
|
||||
function testGetPdoType()
|
||||
{
|
||||
$connection = $this->getConnection(false);
|
||||
$this->assertEquals(\PDO::PARAM_BOOL, $connection->getPdoType('boolean'));
|
||||
$this->assertEquals(\PDO::PARAM_INT, $connection->getPdoType('integer'));
|
||||
$this->assertEquals(\PDO::PARAM_STR, $connection->getPdoType('string'));
|
||||
$this->assertEquals(\PDO::PARAM_NULL, $connection->getPdoType('NULL'));
|
||||
}
|
||||
|
||||
function testAttribute()
|
||||
{
|
||||
|
||||
|
Reference in New Issue
Block a user