|
|
|
@ -131,6 +131,28 @@ class Schema extends \yii\db\Schema
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Determines the PDO type for the given PHP data value. |
|
|
|
|
* @param mixed $data the data whose PDO type is to be determined |
|
|
|
|
* @return integer the PDO type |
|
|
|
|
* @see http://www.php.net/manual/en/pdo.constants.php |
|
|
|
|
*/ |
|
|
|
|
public function getPdoType($data) |
|
|
|
|
{ |
|
|
|
|
// php type => PDO type |
|
|
|
|
static $typeMap = [ |
|
|
|
|
// https://github.com/yiisoft/yii2/issues/1115 |
|
|
|
|
// Cast boolean to integer values to work around problems with PDO casting false to string '' https://bugs.php.net/bug.php?id=33876 |
|
|
|
|
'boolean' => \PDO::PARAM_INT, |
|
|
|
|
'integer' => \PDO::PARAM_INT, |
|
|
|
|
'string' => \PDO::PARAM_STR, |
|
|
|
|
'resource' => \PDO::PARAM_LOB, |
|
|
|
|
'NULL' => \PDO::PARAM_NULL, |
|
|
|
|
]; |
|
|
|
|
$type = gettype($data); |
|
|
|
|
return isset($typeMap[$type]) ? $typeMap[$type] : \PDO::PARAM_STR; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Returns all table names in the database. |
|
|
|
|
* @param string $schema the schema of the tables. Defaults to empty string, meaning the current or default schema. |
|
|
|
|
* If not empty, the returned table names will be prefixed with the schema name. |
|
|
|
|