MediaWiki  master
Wikimedia\Rdbms\ResultWrapper Class Reference

Result wrapper for grabbing data queried from an IDatabase object. More...

Inheritance diagram for Wikimedia\Rdbms\ResultWrapper:
Collaboration diagram for Wikimedia\Rdbms\ResultWrapper:

Public Member Functions

 count ()
 Get the number of rows in a result object. More...
 
 current ()
 
 fetchObject ()
 Fetch the next row from the given result object, in object form. More...
 
 fetchRow ()
 Fetch the next row from the given result object, in associative array form. More...
 
 free ()
 Free a result object. More...
 
 getFieldNames ()
 Get the names of the fields in the result. More...
 
 key ()
 
 next ()
 
 numRows ()
 Get the number of rows in a result object. More...
 
 rewind ()
 
 seek ( $pos)
 Change the position of the cursor in a result object. More...
 
 valid ()
 

Protected Member Functions

 doFetchObject ()
 Get the next row as a stdClass object, or false if iteration has proceeded past the end. More...
 
 doFetchRow ()
 Get the next row as an array containing the data duplicated, once with string keys and once with numeric keys, per the PDO::FETCH_BOTH convention. More...
 
 doFree ()
 Free underlying data. More...
 
 doGetFieldNames ()
 Get the field names in the result set. More...
 
 doNumRows ()
 Get the number of rows in the result set. More...
 
 doSeek ( $pos)
 Modify the current cursor position to the row with the specified offset. More...
 

Protected Attributes

int $currentPos = 0
 The offset of the current row that would be returned by current() and may have been previously returned by fetchObject(). More...
 
stdClass array bool null $currentRow
 The row at $this->currentPos, or null if it has not yet been retrieved, or false if the current row was past the end. More...
 
int $nextPos = 0
 The offset of the row that would be returned by the next call to fetchObject(). More...
 

Detailed Description

Result wrapper for grabbing data queried from an IDatabase object.

Only IDatabase-related classes should construct these. Other code may use the FakeResultWrapper class for convenience or compatibility shims.

Note that using the Iterator methods in combination with the non-Iterator IDatabase result iteration functions may cause rows to be skipped or repeated.

By default, this will use the iteration methods of the IDatabase handle if provided. Subclasses can override methods to make it solely work on the result resource instead.

Stability: stable
to override

Definition at line 23 of file ResultWrapper.php.

Member Function Documentation

◆ count()

Wikimedia\Rdbms\ResultWrapper::count ( )

Get the number of rows in a result object.

Returns
int

Implements Wikimedia\Rdbms\IResultWrapper.

Definition at line 98 of file ResultWrapper.php.

Referenced by Wikimedia\Rdbms\FakeResultWrapper\doNumRows(), and Wikimedia\Rdbms\SqliteResultWrapper\doNumRows().

◆ current()

Wikimedia\Rdbms\ResultWrapper::current ( )
Returns
stdClass|array|false

Implements Wikimedia\Rdbms\IResultWrapper.

Definition at line 139 of file ResultWrapper.php.

◆ doFetchObject()

Wikimedia\Rdbms\ResultWrapper::doFetchObject ( )
abstractprotected

Get the next row as a stdClass object, or false if iteration has proceeded past the end.

The offset within the result set is in $this->currentPos.

Since
1.37
Returns
stdClass|bool

Reimplemented in Wikimedia\Rdbms\SqliteResultWrapper, Wikimedia\Rdbms\PostgresResultWrapper, Wikimedia\Rdbms\MysqliResultWrapper, and Wikimedia\Rdbms\FakeResultWrapper.

◆ doFetchRow()

Wikimedia\Rdbms\ResultWrapper::doFetchRow ( )
abstractprotected

Get the next row as an array containing the data duplicated, once with string keys and once with numeric keys, per the PDO::FETCH_BOTH convention.

Or false if iteration has proceeded past the end.

Returns
array|bool

Reimplemented in Wikimedia\Rdbms\SqliteResultWrapper, Wikimedia\Rdbms\PostgresResultWrapper, Wikimedia\Rdbms\MysqliResultWrapper, and Wikimedia\Rdbms\FakeResultWrapper.

◆ doFree()

Wikimedia\Rdbms\ResultWrapper::doFree ( )
abstractprotected

◆ doGetFieldNames()

Wikimedia\Rdbms\ResultWrapper::doGetFieldNames ( )
abstractprotected

◆ doNumRows()

Wikimedia\Rdbms\ResultWrapper::doNumRows ( )
abstractprotected

◆ doSeek()

Wikimedia\Rdbms\ResultWrapper::doSeek (   $pos)
abstractprotected

Modify the current cursor position to the row with the specified offset.

If $pos is out of bounds, the behaviour is undefined.

Parameters
int$pos

Reimplemented in Wikimedia\Rdbms\SqliteResultWrapper, Wikimedia\Rdbms\PostgresResultWrapper, Wikimedia\Rdbms\MysqliResultWrapper, and Wikimedia\Rdbms\FakeResultWrapper.

◆ fetchObject()

Wikimedia\Rdbms\ResultWrapper::fetchObject ( )

Fetch the next row from the given result object, in object form.

Fields can be retrieved with $row->fieldname, with fields acting like member variables. If no more rows are available, false is returned.

Returns
stdClass|false
Exceptions
DBUnexpectedErrorThrown if the database returns an error

Implements Wikimedia\Rdbms\IResultWrapper.

Definition at line 102 of file ResultWrapper.php.

◆ fetchRow()

Wikimedia\Rdbms\ResultWrapper::fetchRow ( )

Fetch the next row from the given result object, in associative array form.

Fields are retrieved with $row['fieldname']. If no more rows are available, false is returned.

Returns
array|false
Exceptions
DBUnexpectedErrorThrown if the database returns an error

Implements Wikimedia\Rdbms\IResultWrapper.

Definition at line 108 of file ResultWrapper.php.

◆ free()

Wikimedia\Rdbms\ResultWrapper::free ( )

Free a result object.

This either saves memory in PHP (buffered queries) or on the server (unbuffered queries). In general, queries are not large enough in result sets for this to be worth calling.

Implements Wikimedia\Rdbms\IResultWrapper.

Definition at line 129 of file ResultWrapper.php.

◆ getFieldNames()

Wikimedia\Rdbms\ResultWrapper::getFieldNames ( )

Get the names of the fields in the result.

Since
1.37
Returns
string[]

Implements Wikimedia\Rdbms\IResultWrapper.

Definition at line 160 of file ResultWrapper.php.

◆ key()

Wikimedia\Rdbms\ResultWrapper::key ( )
Returns
int

Implements Wikimedia\Rdbms\IResultWrapper.

Definition at line 147 of file ResultWrapper.php.

◆ next()

Wikimedia\Rdbms\ResultWrapper::next ( )
Returns
void

Implements Wikimedia\Rdbms\IResultWrapper.

Definition at line 151 of file ResultWrapper.php.

◆ numRows()

Wikimedia\Rdbms\ResultWrapper::numRows ( )

Get the number of rows in a result object.

Returns
int

Implements Wikimedia\Rdbms\IResultWrapper.

Definition at line 94 of file ResultWrapper.php.

References Wikimedia\Rdbms\ResultWrapper\doNumRows().

Referenced by Wikimedia\Rdbms\QueryStatus\__construct().

◆ rewind()

Wikimedia\Rdbms\ResultWrapper::rewind ( )

Definition at line 134 of file ResultWrapper.php.

◆ seek()

Wikimedia\Rdbms\ResultWrapper::seek (   $pos)

Change the position of the cursor in a result object.

See mysql_data_seek()

Exceptions
OutOfBoundsException
Parameters
int$pos

Implements Wikimedia\Rdbms\IResultWrapper.

Definition at line 114 of file ResultWrapper.php.

◆ valid()

Wikimedia\Rdbms\ResultWrapper::valid ( )

Definition at line 155 of file ResultWrapper.php.

Member Data Documentation

◆ $currentPos

int Wikimedia\Rdbms\ResultWrapper::$currentPos = 0
protected

The offset of the current row that would be returned by current() and may have been previously returned by fetchObject().

Definition at line 34 of file ResultWrapper.php.

Referenced by Wikimedia\Rdbms\FakeResultWrapper\doFetchObject(), and Wikimedia\Rdbms\SqliteResultWrapper\doFetchObject().

◆ $currentRow

stdClass array bool null Wikimedia\Rdbms\ResultWrapper::$currentRow
protected

The row at $this->currentPos, or null if it has not yet been retrieved, or false if the current row was past the end.

Definition at line 40 of file ResultWrapper.php.

◆ $nextPos

int Wikimedia\Rdbms\ResultWrapper::$nextPos = 0
protected

The offset of the row that would be returned by the next call to fetchObject().

Definition at line 28 of file ResultWrapper.php.


The documentation for this class was generated from the following file: