DboSource::_prepareUpdateFields PHP Method

_prepareUpdateFields() protected method

Quotes and prepares fields and values for an SQL UPDATE statement
protected _prepareUpdateFields ( Model $Model, array $fields, boolean $quoteValues = true, boolean $alias = false ) : array
$Model Model The model to prepare fields for.
$fields array The fields to update.
$quoteValues boolean If values should be quoted, or treated as SQL snippets
$alias boolean Include the model alias in the field name
return array Fields and values, quoted and prepared
    protected function _prepareUpdateFields(Model $Model, $fields, $quoteValues = true, $alias = false)
    {
        $quotedAlias = $this->startQuote . $Model->alias . $this->endQuote;
        $updates = array();
        foreach ($fields as $field => $value) {
            if ($alias && strpos($field, '.') === false) {
                $quoted = $Model->escapeField($field);
            } elseif (!$alias && strpos($field, '.') !== false) {
                $quoted = $this->name(str_replace($quotedAlias . '.', '', str_replace($Model->alias . '.', '', $field)));
            } else {
                $quoted = $this->name($field);
            }
            if ($value === null) {
                $updates[] = $quoted . ' = NULL';
                continue;
            }
            $update = $quoted . ' = ';
            if ($quoteValues) {
                $update .= $this->value($value, $Model->getColumnType($field));
            } elseif ($Model->getColumnType($field) === 'boolean' && (is_int($value) || is_bool($value))) {
                $update .= $this->boolean($value, true);
            } elseif (!$alias) {
                $update .= str_replace($quotedAlias . '.', '', str_replace($Model->alias . '.', '', $value));
            } else {
                $update .= $value;
            }
            $updates[] = $update;
        }
        return $updates;
    }
DboSource