cakephp / 4.4 / class-cake.database.expression.valuesexpression.html

Class ValuesExpression

An expression object to contain values being inserted.

Helps generate SQL with the correct number of placeholders and bind values correctly into the statement.

Property Summary

  • bool

    Whether values have been casted to expressions already.

  • $_columns protected
    array

    List of columns to ensure are part of the insert.

  • $_query protected
    Cake\Database\Query|null

    The Query object to use as a values expression

  • $_typeMap protected
    Cake\Database\TypeMap|null
  • $_values protected
    array

    Array of values to insert.

Method Summary

  • __construct() public

    Constructor

  • _castToExpression() protected

    Conditionally converts the passed value to an ExpressionInterface object if the type class implements the ExpressionTypeInterface. Otherwise, returns the value unmodified.

  • _columnNames() protected

    Get the bare column names.

  • _processExpressions() protected

    Converts values that need to be casted to expressions

  • _requiresToExpressionCasting() protected

    Returns an array with the types that require values to be casted to expressions, out of the list of type names passed as parameter.

  • add() public

    Add a row of data to be inserted.

  • getColumns() public

    Gets the columns to be inserted.

  • getDefaultTypes() public

    Gets default types of current type map.

  • getQuery() public

    Gets the query object to be used as the values expression to be evaluated to insert records in the table.

  • getTypeMap() public

    Returns the existing type map.

  • getValues() public

    Gets the values to be inserted.

  • setColumns() public

    Sets the columns to be inserted.

  • setDefaultTypes() public

    Overwrite the default type mappings for fields in the implementing object.

  • setQuery() public

    Sets the query object to be used as the values expression to be evaluated to insert records in the table.

  • setTypeMap() public

    Creates a new TypeMap if $typeMap is an array, otherwise exchanges it for the given one.

  • setValues() public

    Sets the values to be inserted.

  • sql() public

    Converts the Node into a SQL string fragment.

  • traverse() public

    Iterates over each part of the expression recursively for every level of the expressions tree and executes the $callback callable passing as first parameter the instance of the expression currently being iterated.

Method Detail

__construct() public

__construct(array $columns, Cake\Database\TypeMap $typeMap)

Constructor

Parameters

array $columns

The list of columns that are going to be part of the values.

Cake\Database\TypeMap $typeMap

A dictionary of column -> type names

_castToExpression() protected

_castToExpression(mixed $value, string|null $type = null): mixed

Conditionally converts the passed value to an ExpressionInterface object if the type class implements the ExpressionTypeInterface. Otherwise, returns the value unmodified.

Parameters

mixed $value

The value to convert to ExpressionInterface

string|null $type optional

The type name

Returns

mixed

_columnNames() protected

_columnNames(): array

Get the bare column names.

Because column names could be identifier quoted, we need to strip the identifiers off of the columns.

Returns

array

_processExpressions() protected

_processExpressions(): void

Converts values that need to be casted to expressions

Returns

void

_requiresToExpressionCasting() protected

_requiresToExpressionCasting(array $types): array

Returns an array with the types that require values to be casted to expressions, out of the list of type names passed as parameter.

Parameters

array $types

List of type names

Returns

array

add() public

add(Cake\Database\Query|array $values): void

Add a row of data to be inserted.

Parameters

Cake\Database\Query|array $values

Array of data to append into the insert, or a query for doing INSERT INTO .. SELECT style commands

Returns

void

Throws

Cake\Database\Exception\DatabaseException
When mixing array + Query data types.

getColumns() public

getColumns(): array

Gets the columns to be inserted.

Returns

array

getDefaultTypes() public

getDefaultTypes(): array<int|string, string>

Gets default types of current type map.

Returns

array<int|string, string>

getQuery() public

getQuery(): Cake\Database\Query|null

Gets the query object to be used as the values expression to be evaluated to insert records in the table.

Returns

Cake\Database\Query|null

getTypeMap() public

getTypeMap(): Cake\Database\TypeMap

Returns the existing type map.

Returns

Cake\Database\TypeMap

getValues() public

getValues(): array

Gets the values to be inserted.

Returns

array

setColumns() public

setColumns(array $columns): $this

Sets the columns to be inserted.

Parameters

array $columns

Array with columns to be inserted.

Returns

$this

setDefaultTypes() public

setDefaultTypes(array<int|string, string> $types): $this

Overwrite the default type mappings for fields in the implementing object.

This method is useful if you need to set type mappings that are shared across multiple functions/expressions in a query.

To add a default without overwriting existing ones use getTypeMap()->addDefaults()

Parameters

array<int|string, string> $types

The array of types to set.

Returns

$this

See Also

\Cake\Database\TypeMap::setDefaults()

setQuery() public

setQuery(Cake\Database\Query $query): $this

Sets the query object to be used as the values expression to be evaluated to insert records in the table.

Parameters

Cake\Database\Query $query

The query to set

Returns

$this

setTypeMap() public

setTypeMap(Cake\Database\TypeMap|array $typeMap): $this

Creates a new TypeMap if $typeMap is an array, otherwise exchanges it for the given one.

Parameters

Cake\Database\TypeMap|array $typeMap

Creates a TypeMap if array, otherwise sets the given TypeMap

Returns

$this

setValues() public

setValues(array $values): $this

Sets the values to be inserted.

Parameters

array $values

Array with values to be inserted.

Returns

$this

sql() public

sql(Cake\Database\ValueBinder $binder): string

Converts the Node into a SQL string fragment.

Parameters

Cake\Database\ValueBinder $binder

Returns

string

traverse() public

traverse(Closure $callback): $this

Iterates over each part of the expression recursively for every level of the expressions tree and executes the $callback callable passing as first parameter the instance of the expression currently being iterated.

Parameters

Closure $callback

Returns

$this

Property Detail

$_castedExpressions protected

Whether values have been casted to expressions already.

Type

bool

$_columns protected

List of columns to ensure are part of the insert.

Type

array

$_query protected

The Query object to use as a values expression

Type

Cake\Database\Query|null

$_typeMap protected

Type

Cake\Database\TypeMap|null

$_values protected

Array of values to insert.

Type

array

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.4/class-Cake.Database.Expression.ValuesExpression.html