class Statement implements IteratorAggregate, Statement (View source)

A thin wrapper around a Doctrine\DBAL\Driver\Statement that adds support for logging, DBAL mapping types, etc.

Properties

protected string $sql The SQL statement.
protected array $params The bound parameters.
protected array $types The parameter types.
protected Statement $stmt The underlying driver statement.
protected AbstractPlatform $platform The underlying database platform.
protected Connection $conn The connection this statement is bound to and executed on.

Methods

__construct(string $sql, Connection $conn)

Creates a new Statement for the given SQL and Connection.

bool
bindValue(string $name, mixed $value, int $type = ParameterType::STRING)

Binds a parameter value to the statement.

bool
bindParam(string $name, mixed $var, int|null $type = ParameterType::STRING, int|null $length = null)

Binds a parameter to a value by reference.

bool
execute(array|null $params = null)

Executes the statement with the currently bound parameters.

bool
closeCursor()

Closes the cursor, freeing the database resources used by this statement.

int
columnCount()

Returns the number of columns in the result set.

string
errorCode()

Fetches the SQLSTATE associated with the last operation on the statement.

array
errorInfo()

Fetches extended error information associated with the last operation on the statement.

bool
setFetchMode(int $fetchMode, mixed $arg2 = null, mixed $arg3 = null)

Sets the fetch mode to use while iterating this statement.

getIterator()

Required by interface IteratorAggregate.

mixed
fetch(int|null $fetchMode = null, int $cursorOrientation = \PDO::FETCH_ORI_NEXT, int $cursorOffset = 0)

Returns the next row of a result set.

array
fetchAll(int|null $fetchMode = null, int|null $fetchArgument = null, array|null $ctorArgs = null)

Returns an array containing all of the result set rows.

string|boolean
fetchColumn(int $columnIndex = 0)

Returns a single column from the next row of a result set.

int
rowCount()

Returns the number of rows affected by the last execution of this statement.

getWrappedStatement()

Gets the wrapped driver statement.

Details

__construct(string $sql, Connection $conn)

Creates a new Statement for the given SQL and Connection.

Parameters

string $sql The SQL of the statement.
Connection $conn The connection on which the statement should be executed.

bool bindValue(string $name, mixed $value, int $type = ParameterType::STRING)

Binds a parameter value to the statement.

The value can optionally be bound with a PDO binding type or a DBAL mapping type. If bound with a DBAL mapping type, the binding type is derived from the mapping type and the value undergoes the conversion routines of the mapping type before being bound.

Parameters

string $name The name or position of the parameter.
mixed $value The value to bind to the parameter.
int $type Explicit data type for the parameter using the {@link \Doctrine\DBAL\ParameterType} constants.

Return Value

bool TRUE on success or FALSE on failure.

bool bindParam(string $name, mixed $var, int|null $type = ParameterType::STRING, int|null $length = null)

Binds a parameter to a value by reference.

Binding a parameter by reference does not support DBAL mapping types.

Parameters

string $name The name or position of the parameter.
mixed $var The reference to the variable to bind.
int|null $type Explicit data type for the parameter using the {@link \Doctrine\DBAL\ParameterType} constants. To return an INOUT parameter from a stored procedure, use the bitwise OR operator to set the PDO::PARAM_INPUT_OUTPUT bits for the data_type parameter.
int|null $length You must specify maxlength when using an OUT bind so that PHP allocates enough memory to hold the returned value.

Return Value

bool TRUE on success or FALSE on failure.

bool execute(array|null $params = null)

Executes the statement with the currently bound parameters.

Parameters

array|null $params An array of values with as many elements as there are bound parameters in the SQL statement being executed.

Return Value

bool TRUE on success or FALSE on failure.

Exceptions

DBALException

bool closeCursor()

Closes the cursor, freeing the database resources used by this statement.

Return Value

bool TRUE on success or FALSE on failure.

int columnCount()

Returns the number of columns in the result set.

Return Value

int The number of columns in the result set represented by the PDOStatement object. If there is no result set, this method should return 0.

string errorCode()

Fetches the SQLSTATE associated with the last operation on the statement.

Return Value

string The error code string.

array errorInfo()

Fetches extended error information associated with the last operation on the statement.

Return Value

array The error info array.

bool setFetchMode(int $fetchMode, mixed $arg2 = null, mixed $arg3 = null)

Sets the fetch mode to use while iterating this statement.

Parameters

int $fetchMode The fetch mode must be one of the {@link \Doctrine\DBAL\FetchMode} constants.
mixed $arg2
mixed $arg3

Return Value

bool

getIterator()

Required by interface IteratorAggregate.

{@inheritdoc}

mixed fetch(int|null $fetchMode = null, int $cursorOrientation = \PDO::FETCH_ORI_NEXT, int $cursorOffset = 0)

Returns the next row of a result set.

Parameters

int|null $fetchMode Controls how the next row will be returned to the caller. The value must be one of the {@link \Doctrine\DBAL\FetchMode} constants, defaulting to {@link \Doctrine\DBAL\FetchMode::MIXED}.
int $cursorOrientation For a ResultStatement object representing a scrollable cursor, this value determines which row will be returned to the caller. This value must be one of the \PDO::FETCH_ORI_* constants, defaulting to \PDO::FETCH_ORI_NEXT. To request a scrollable cursor for your ResultStatement object, you must set the \PDO::ATTR_CURSOR attribute to \PDO::CURSOR_SCROLL when you prepare the SQL statement with \PDO::prepare().
int $cursorOffset For a ResultStatement object representing a scrollable cursor for which the cursorOrientation parameter is set to \PDO::FETCH_ORI_ABS, this value specifies the absolute number of the row in the result set that shall be fetched. For a ResultStatement object representing a scrollable cursor for which the cursorOrientation parameter is set to \PDO::FETCH_ORI_REL, this value specifies the row to fetch relative to the cursor position before ResultStatement::fetch() was called.

Return Value

mixed The return value of this method on success depends on the fetch mode. In all cases, FALSE is returned on failure.

array fetchAll(int|null $fetchMode = null, int|null $fetchArgument = null, array|null $ctorArgs = null)

Returns an array containing all of the result set rows.

Parameters

int|null $fetchMode Controls how the next row will be returned to the caller. The value must be one of the {@link \Doctrine\DBAL\FetchMode} constants, defaulting to {@link \Doctrine\DBAL\FetchMode::MIXED}.
int|null $fetchArgument This argument has a different meaning depending on the value of the $fetchMode parameter: * {@link \Doctrine\DBAL\FetchMode::COLUMN}: Returns the indicated 0-indexed column. * {@link \Doctrine\DBAL\FetchMode::CUSTOM_OBJECT}: Returns instances of the specified class, mapping the columns of each row to named properties in the class. * \PDO::FETCH_FUNC: Returns the results of calling the specified function, using each row's columns as parameters in the call.
array|null $ctorArgs Controls how the next row will be returned to the caller. The value must be one of the {@link \Doctrine\DBAL\FetchMode} constants, defaulting to {@link \Doctrine\DBAL\FetchMode::MIXED}.

Return Value

array

string|boolean fetchColumn(int $columnIndex = 0)

Returns a single column from the next row of a result set.

Parameters

int $columnIndex 0-indexed number of the column you wish to retrieve from the row. If no value is supplied, PDOStatement->fetchColumn() fetches the first column.

Return Value

string|boolean A single column in the next row of a result set, or FALSE if there are no more rows.

int rowCount()

Returns the number of rows affected by the last execution of this statement.

Return Value

int The number of rows.

Statement getWrappedStatement()

Gets the wrapped driver statement.

Return Value

Statement