interface SQLWriteExpression (View source)

Represents a SQL expression which may have field values assigned (UPDATE/INSERT Expressions)

Methods

public
$this
addAssignments(array $assignments)

Adds assignments for a list of several fields.

public
$this
setAssignments(array $assignments)

Sets the list of assignments to the given list

public
array
getAssignments()

Retrieves the list of assignments in parameterised format

public
$this
assign(string $field, mixed $value)

Set the value for a single field

public
$this
assignSQL(string $field, string $sql)

Assigns a value to a field using the literal SQL expression, rather than a value to be escaped

Details

$this addAssignments(array $assignments)

Adds assignments for a list of several fields.

For multi-row objects this applies this to the current row.

Note that field values must not be escaped, as these will be internally parameterised by the database engine.


// Basic assignments
$query->addAssignments([
     '"Object"."Title"' => 'Bob',
     '"Object"."Description"' => 'Bob was here'
])

// Parameterised assignments
$query->addAssignments([
     '"Object"."Title"' => ['?' => 'Bob'],
     '"Object"."Description"' => ['?' => null]
])

// Complex parameters
$query->addAssignments([
     '"Object"."Score"' => ['MAX(?,?)' => [1, 3]]
]);

// Assignment of literal SQL for a field. The empty array is
// important to denote the zero-number parameter list
$query->addAssignments([
     '"Object"."Score"' => ['NOW()' => []]
]);

Parameters

array $assignments

The list of fields to assign

Return Value

$this

Self reference

$this setAssignments(array $assignments)

Sets the list of assignments to the given list

For multi-row objects this applies this to the current row.

Parameters

array $assignments

Return Value

$this

Self reference

See also

SQLWriteExpression::addAssignments for syntax examples

array getAssignments()

Retrieves the list of assignments in parameterised format

For multi-row objects returns assignments for the current row.

Return Value

array

List of assignments. The key of this array will be the column to assign, and the value a parameterised array in the format ['SQL' => [parameters]];

$this assign(string $field, mixed $value)

Set the value for a single field

For multi-row objects this applies this to the current row.

E.g.


// Literal assignment
$query->assign('"Object"."Description"', 'lorum ipsum'));

// Single parameter
$query->assign('"Object"."Title"', ['?' => 'Bob']);

// Complex parameters
$query->assign('"Object"."Score"', ['MAX(?,?)' => [1, 3]]);

Parameters

string $field

The field name to update

mixed $value

The value to assign to this field. This could be an array containing a parameterised SQL query of any number of parameters, or a single literal value.

Return Value

$this

Self reference

$this assignSQL(string $field, string $sql)

Assigns a value to a field using the literal SQL expression, rather than a value to be escaped

For multi-row objects this applies this to the current row.

Parameters

string $field

The field name to update

string $sql

The SQL to use for this update. E.g. "NOW()"

Return Value

$this

Self reference