class ResultCacheStatement implements IteratorAggregate, ResultStatement (View source)

Cache statement for SQL results.

A result is saved in multiple cache keys, there is the originally specified cache key which is just pointing to result rows by key. The following things have to be ensured:

  1. lifetime of the original key has to be longer than that of all the individual rows keys
  2. if any one row key is missing the query has to be re-executed.

Also you have to realize that the cache will load the whole result into memory at once to ensure 2. This means that the memory usage for cached results might increase by using this feature.

Methods

__construct(Statement $stmt, Cache $resultCache, string $cacheKey, string $realKey, integer $lifetime)

No description

boolean
closeCursor()

Closes the cursor, enabling the statement to be executed again.

integer
columnCount()

Returns the number of columns in the result set

boolean
setFetchMode(integer $fetchMode, mixed $arg2 = null, mixed $arg3 = null)

Sets the fetch mode to use while iterating this statement.

getIterator()

{@inheritdoc}

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(integer $columnIndex = 0)

Returns a single column from the next row of a result set or FALSE if there are no more rows.

integer
rowCount()

Returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement executed by the corresponding object.

Details

__construct(Statement $stmt, Cache $resultCache, string $cacheKey, string $realKey, integer $lifetime)

Parameters

Statement $stmt
Cache $resultCache
string $cacheKey
string $realKey
integer $lifetime

boolean closeCursor()

Closes the cursor, enabling the statement to be executed again.

Return Value

boolean TRUE on success or FALSE on failure.

integer columnCount()

Returns the number of columns in the result set

Return Value

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

boolean setFetchMode(integer $fetchMode, mixed $arg2 = null, mixed $arg3 = null)

Sets the fetch mode to use while iterating this statement.

Parameters

integer $fetchMode The fetch mode must be one of the PDO::FETCH_* constants.
mixed $arg2
mixed $arg3

Return Value

boolean

getIterator()

{@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 \PDO::FETCH_* constants, defaulting to \PDO::FETCH_BOTH.
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 \PDO::FETCH_* constants, defaulting to \PDO::FETCH_BOTH.
int|null $fetchArgument This argument has a different meaning depending on the value of the $fetchMode parameter: * \PDO::FETCH_COLUMN: Returns the indicated 0-indexed column. * \PDO::FETCH_CLASS: 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 \PDO::FETCH_* constants, defaulting to \PDO::FETCH_BOTH.

Return Value

array

string|boolean fetchColumn(integer $columnIndex = 0)

Returns a single column from the next row of a result set or FALSE if there are no more rows.

Parameters

integer $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.

integer rowCount()

Returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement executed by the corresponding object.

If the last SQL statement executed by the associated Statement object was a SELECT statement, some databases may return the number of rows returned by that statement. However, this behaviour is not guaranteed for all databases and should not be relied on for portable applications.

Return Value

integer The number of rows.