MediaWiki REL1_28
ResultWrapper Class Reference

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

Inheritance diagram for ResultWrapper:
Collaboration diagram for ResultWrapper:

Public Member Functions

 __construct (IDatabase $db=null, $result)
 Create a row iterator from a result resource and an optional Database object.
 
 current ()
 
 fetchObject ()
 Fetch the next row from the given result object, in object form.
 
 fetchRow ()
 Fetch the next row from the given result object, in associative array form.
 
 free ()
 Free a result object.
 
 key ()
 
 next ()
 
 numRows ()
 Get the number of rows in a result object.
 
 rewind ()
 
 seek ( $row)
 Change the position of the cursor in a result object.
 
 valid ()
 

Public Attributes

resource array null $result
 Optional underlying result handle for subclass usage.
 

Protected Attributes

stdClass null $currentRow = null
 
IDatabase null $db
 
int $pos = 0
 

Private Member Functions

 getDB ()
 

Detailed Description

Result wrapper for grabbing data queried from an IDatabase object.

Note that using the Iterator methods in combination with the non-Iterator DB 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. If no database is provided, and the subclass does not override the DB iteration methods, then a RuntimeException will be thrown when iteration is attempted.

The result resource field should not be accessed from non-Database related classes. It is database class specific and is stored here to associate iterators with queries.

Definition at line 18 of file ResultWrapper.php.

Constructor & Destructor Documentation

◆ __construct()

ResultWrapper::__construct ( IDatabase  $db = null,
  $result 
)

Create a row iterator from a result resource and an optional Database object.

Only Database-related classes should construct ResultWrapper. Other code may use the FakeResultWrapper subclass for convenience or compatibility shims, however.

Parameters
IDatabase | null$dbOptional database handle
ResultWrapper | array | resource$resultOptional underlying result handle

Definition at line 39 of file ResultWrapper.php.

References $db, and $result.

Member Function Documentation

◆ current()

ResultWrapper::current ( )
Returns
stdClass|array|bool

Definition at line 127 of file ResultWrapper.php.

References $currentRow, and next().

Referenced by valid().

◆ fetchObject()

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|bool
Exceptions
DBUnexpectedErrorThrown if the database returns an error

Reimplemented in FakeResultWrapper, and MssqlResultWrapper.

Definition at line 65 of file ResultWrapper.php.

References getDB().

Referenced by next().

◆ fetchRow()

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|bool
Exceptions
DBUnexpectedErrorThrown if the database returns an error

Reimplemented in FakeResultWrapper, and MssqlResultWrapper.

Definition at line 76 of file ResultWrapper.php.

References getDB().

◆ free()

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.

Reimplemented in FakeResultWrapper.

Definition at line 96 of file ResultWrapper.php.

◆ getDB()

ResultWrapper::getDB ( )
private
Returns
IDatabase
Exceptions
RuntimeException

Definition at line 108 of file ResultWrapper.php.

References $db.

Referenced by fetchObject(), fetchRow(), numRows(), rewind(), and seek().

◆ key()

ResultWrapper::key ( )
Returns
int

Definition at line 138 of file ResultWrapper.php.

References $pos.

◆ next()

ResultWrapper::next ( )
Returns
stdClass

Reimplemented in FakeResultWrapper.

Definition at line 145 of file ResultWrapper.php.

References $currentRow, and fetchObject().

Referenced by current().

◆ numRows()

ResultWrapper::numRows ( )

Get the number of rows in a result object.

Returns
int

Reimplemented in FakeResultWrapper.

Definition at line 53 of file ResultWrapper.php.

References getDB().

Referenced by rewind().

◆ rewind()

ResultWrapper::rewind ( )

Reimplemented in FakeResultWrapper.

Definition at line 116 of file ResultWrapper.php.

References getDB(), and numRows().

◆ seek()

ResultWrapper::seek (   $row)

Change the position of the cursor in a result object.

See mysql_data_seek()

Parameters
int$row

Reimplemented in FakeResultWrapper, and MssqlResultWrapper.

Definition at line 86 of file ResultWrapper.php.

References getDB().

◆ valid()

ResultWrapper::valid ( )

Definition at line 152 of file ResultWrapper.php.

References current().

Member Data Documentation

◆ $currentRow

stdClass null ResultWrapper::$currentRow = null
protected

◆ $db

IDatabase null ResultWrapper::$db
protected

Definition at line 23 of file ResultWrapper.php.

Referenced by __construct(), and getDB().

◆ $pos

int ResultWrapper::$pos = 0
protected

Definition at line 26 of file ResultWrapper.php.

Referenced by FakeResultWrapper\fetchRow(), and key().

◆ $result

resource array null ResultWrapper::$result

Optional underlying result handle for subclass usage.

Definition at line 20 of file ResultWrapper.php.

Referenced by __construct(), MssqlResultWrapper\fetchObject(), MssqlResultWrapper\fetchRow(), and MssqlResultWrapper\seek().


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