Query
abstract class Query implements Iterator (View source)
Abstract query-result class. A query result provides an iterator that returns a map for each record of a query result.
The map should be keyed by the column names, and the values should use the following types:
- boolean returned as integer 1 or 0 (to ensure consistency with MySQL that doesn't have native booleans)
- integer types returned as integers
- floating point / decimal types returned as floats
- strings returned as strings
- dates / datetimes returned as strings
Note that until SilverStripe 4.3, bugs meant that strings were used for every column type.
Once again, this should be subclassed by an actual database implementation. It will only ever be constructed by a subclass of SS_Database. The result of a database query - an iteratable object that's returned by DB::SS_Query
Primarily, the Query class takes care of the iterator plumbing, letting the subclasses focusing on providing the specific data-access methods that are required: nextRecord()}, {@link numRecords() and seek()
Properties
protected deprecated | array | $currentRecord | The current record in the iterator. |
|
protected deprecated | int | $rowNum | The number of the current row in the iterator. |
|
protected deprecated | bool | $queryHasBegun | Flag to keep track of whether iteration has begun, to prevent unnecessary seeks |
Methods
Return an array containing all the values from a specific column. If no column is set, then the first will be returned
Return an array containing all values in the leftmost column, where the keys are the same as the values.
Iterator function implementation. Rewind the iterator to the first item and return it.
Iterator function implementation. Check if the iterator is pointing to a valid item.
Details
array
column(string $column = null)
Return an array containing all the values from a specific column. If no column is set, then the first will be returned
array
keyedColumn()
Return an array containing all values in the leftmost column, where the keys are the same as the values.
array
map()
Return a map from the first column to the second column.
array
record()
Returns the next record in the iterator.
string
value()
Returns the first column of the first record.
string
table()
Return an HTML table containing the full result-set
void
rewind()
deprecated
deprecated
Iterator function implementation. Rewind the iterator to the first item and return it.
Makes use of seek()} and {@link numRecords(), takes care of the plumbing.
array
current()
deprecated
deprecated
Iterator function implementation. Return the current item of the iterator.
array
first()
deprecated
deprecated
Iterator function implementation. Return the first item of this iterator.
int
key()
deprecated
deprecated
Iterator function implementation. Return the row number of the current item.
array
next()
deprecated
deprecated
Iterator function implementation. Return the next record in the iterator.
Makes use of nextRecord(), takes care of the plumbing.
bool
valid()
deprecated
deprecated
Iterator function implementation. Check if the iterator is pointing to a valid item.
abstract array
nextRecord()
deprecated
deprecated
Return the next record in the query result.
abstract int
numRecords()
Return the total number of items in the query result.
abstract array
seek(int $rowNum)
deprecated
deprecated
Go to a specific row number in the query result and return the record.