/**
* @inheritdoc
*/
public function update($table, $columns, $condition, &$params)
{
$schema = $this->db->getSchema();
if (($tableSchema = $schema->getTableSchema($table)) !== null) {
$columnSchemas = $tableSchema->columns;
} else {
$columnSchemas = [];
}
foreach ($columns as $name => $value) {
if ($value instanceof Expression) {
$columns[$name] = $this->convertExpression($value);
} elseif (isset($columnSchemas[$name]) && in_array($columnSchemas[$name]->type, [Schema::TYPE_TEXT, Schema::TYPE_BINARY])) {
$columns[$name] = [$value, \PDO::PARAM_LOB];
}
}
return parent::update($table, $columns, $condition, $params);
}