\Cake\Database\ExpressionValuesExpression

An expression object to contain values being inserted.

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

Summary

Methods
Properties
Constants
setTypeMap()
getTypeMap()
typeMap()
setDefaultTypes()
getDefaultTypes()
defaultTypes()
__construct()
add()
setColumns()
getColumns()
columns()
setValues()
getValues()
values()
setQuery()
getQuery()
query()
sql()
traverse()
No public properties found
No constants found
_castToExpression()
_requiresToExpressionCasting()
_columnNames()
_processExpressions()
$_typeMap
$_values
$_columns
$_query
$_castedExpressions
N/A
No private methods found
No private properties found
N/A

Properties

$_values

$_values : array

Array of values to insert.

Type

array

$_columns

$_columns : array

List of columns to ensure are part of the insert.

Type

array

$_query

$_query : \Cake\Database\Query|null

The Query object to use as a values expression

Type

\Cake\Database\Query|null

$_castedExpressions

$_castedExpressions : boolean

Whether or not values have been casted to expressions already.

Type

boolean

Methods

setTypeMap()

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

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

Parameters

array|\Cake\Database\TypeMap $typeMap

Creates a TypeMap if array, otherwise sets the given TypeMap

Returns

$this

getTypeMap()

getTypeMap() : \Cake\Database\TypeMap

Returns the existing type map.

Returns

\Cake\Database\TypeMap

typeMap()

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

Creates a new TypeMap if $typeMap is an array, otherwise returns the existing type map or exchanges it for the given one.

Parameters

array|\Cake\Database\TypeMap|null $typeMap

Creates a TypeMap if array, otherwise sets the given TypeMap

Returns

$this|\Cake\Database\TypeMap

setDefaultTypes()

setDefaultTypes(array  $types) : $this

Allows setting default types when chaining query.

Parameters

array $types

The array of types to set.

Returns

$this

getDefaultTypes()

getDefaultTypes() : array

Gets default types of current type map.

Returns

array

defaultTypes()

defaultTypes(array|null  $types = null) : $this|array

Allows setting default types when chaining query

Parameters

array|null $types

The array of types to set.

Returns

$this|array

__construct()

__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

add()

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

Add a row of data to be inserted.

Parameters

array|\Cake\Database\Query $data

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

Throws

\Cake\Database\Exception

When mixing array + Query data types.

setColumns()

setColumns(array  $cols) : $this

Sets the columns to be inserted.

Parameters

array $cols

Array with columns to be inserted.

Returns

$this

getColumns()

getColumns() : array

Gets the columns to be inserted.

Returns

array

columns()

columns(array|null  $cols = null) : array|$this

Sets the columns to be inserted. If no params are passed, then it returns the currently stored columns.

Parameters

array|null $cols

Array with columns to be inserted.

Returns

array|$this

setValues()

setValues(array  $values) : $this

Sets the values to be inserted.

Parameters

array $values

Array with values to be inserted.

Returns

$this

getValues()

getValues() : array

Gets the values to be inserted.

Returns

array

values()

values(array|null  $values = null) : array|$this

Sets the values to be inserted. If no params are passed, then it returns the currently stored values

Parameters

array|null $values

Array with values to be inserted.

Returns

array|$this

setQuery()

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

getQuery()

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

query()

query(\Cake\Database\Query|null  $query = null) : \Cake\Database\Query|null|$this

Sets the query object to be used as the values expression to be evaluated to insert records in the table. If no params are passed, then it returns the currently stored query

Parameters

\Cake\Database\Query|null $query

The query to set

Returns

\Cake\Database\Query|null|$this

sql()

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

Convert the values into a SQL string with placeholders.

Parameters

\Cake\Database\ValueBinder $generator

Placeholder generator object

Returns

string

traverse()

traverse(callable  $visitor) : void

Traverse the values expression.

This method will also traverse any queries that are to be used in the INSERT values.

Parameters

callable $visitor

The visitor to traverse the expression with.

_castToExpression()

_castToExpression(mixed  $value, string  $type) : 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 converto to ExpressionInterface

string $type

The type name

Returns

mixed

_requiresToExpressionCasting()

_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

_columnNames()

_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()

_processExpressions() : void

Converts values that need to be casted to expressions