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.
Properties summary
- $_castedExpressions protected
bool
Whether or not 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
- $_values protected
array
Array of values to insert.
Method Summary
- _castToExpression() protected
Conditionally converts the passed value to an ExpressionInterface object if the type class implements the ExpressionTypeInterface. Otherwise, returns the value unmodified.
- _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.
- getQuery() public
Gets the query object to be used as the values expression to be evaluated to insert records in the table.
- 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.
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 $type)
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|null
$type optional The type name
Returns
mixed
_columnNames() protected
_columnNames()
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()
Converts values that need to be casted to expressions
_requiresToExpressionCasting() protected
_requiresToExpressionCasting(array $types)
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(mixed $data)
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.
getColumns() public
getColumns()
Gets the columns to be inserted.
Returns
array
getDefaultTypes() public
getDefaultTypes()
Gets default types of current type map.
Returns
array
getQuery() public
getQuery()
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()
Returns the existing type map.
Returns
\Cake\Database\TypeMap
getValues() public
getValues()
Gets the values to be inserted.
Returns
array
setColumns() public
setColumns(array $cols)
Sets the columns to be inserted.
Parameters
-
array
$cols Array with columns to be inserted.
Returns
$this
setDefaultTypes() public
setDefaultTypes(array $types)
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
$types The array of types to set.
Returns
$this
See Also
setQuery() public
setQuery(\Cake\Database\Query $query)
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(mixed $typeMap)
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
setValues() public
setValues(array $values)
Sets the values to be inserted.
Parameters
-
array
$values Array with values to be inserted.
Returns
$this
sql() public
sql(\Cake\Database\ValueBinder $generator)
Convert the values into a SQL string with placeholders.
Parameters
-
\Cake\Database\ValueBinder
$generator Placeholder generator object
Returns
string
traverse() public
traverse(\Closure $visitor)
Traverse the values expression.
This method will also traverse any queries that are to be used in the INSERT values.
Parameters
-
\Closure
$visitor The visitor to traverse the expression with.
Returns
$this
Property Detail
$_castedExpressions protected
Whether or not 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
$_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.0/class-Cake.Database.Expression.ValuesExpression.html