Fix ODBC Driver 13 for SQL Server error on null (#16039)

This commit is contained in:
vsivsivsi
2018-04-29 11:05:11 +03:00
committed by Dmitry Naumenko
parent f5665a0544
commit cb15a413a7

View File

@ -334,7 +334,7 @@ class QueryBuilder extends \yii\db\QueryBuilder
$columnSchemas = $tableSchema->columns;
foreach ($columns as $name => $value) {
// @see https://github.com/yiisoft/yii2/issues/12599
if (isset($columnSchemas[$name]) && $columnSchemas[$name]->type === Schema::TYPE_BINARY && $columnSchemas[$name]->dbType === 'varbinary' && is_string($value)) {
if (isset($columnSchemas[$name]) && $columnSchemas[$name]->type === Schema::TYPE_BINARY && $columnSchemas[$name]->dbType === 'varbinary' && (is_string($value) || $value === null)) {
$exParams = [];
$phName = $this->bindParam($value, $exParams);
$columns[$name] = new Expression("CONVERT(VARBINARY, $phName)", $exParams);