MediaWiki
master
SqliteResultWrapper.php
Go to the documentation of this file.
1
<?php
2
3
namespace
Wikimedia\Rdbms
;
4
5
use ArrayIterator;
6
use PDO;
7
use PDOStatement;
8
9
class
SqliteResultWrapper
extends
ResultWrapper
{
11
private
$result
;
13
private
$rows
;
14
19
public
function
__construct
( PDOStatement
$result
) {
20
$this->result =
$result
;
21
// SQLite doesn't allow buffered results or data seeking etc, so we'll
22
// use fetchAll. PDO has PDO::CURSOR_SCROLL but the SQLite C API doesn't
23
// support it, so the driver raises an error if it is used.
24
$this->rows =
$result
->fetchAll( PDO::FETCH_OBJ );
25
}
26
27
protected
function
doNumRows
() {
28
return
count
( $this->rows );
29
}
30
31
protected
function
doFetchObject
() {
32
return
$this->rows[
$this->currentPos
] ??
false
;
33
}
34
35
protected
function
doFetchRow
() {
36
$obj = $this->
doFetchObject
();
37
if
( is_object( $obj ) ) {
38
$i = 0;
39
$row = get_object_vars( $obj );
40
foreach
( $row as $value ) {
41
$row[$i++] = $value;
42
}
43
return
$row;
44
}
else
{
45
return
$obj;
46
}
47
}
48
49
protected
function
doSeek
( $pos ) {
50
// Nothing to do -- parent updates $this->currentPos
51
}
52
53
protected
function
doFree
() {
54
$this->rows =
null
;
55
$this->result =
null
;
56
}
57
58
protected
function
doGetFieldNames
() {
59
if
( $this->rows ) {
60
return
array_keys( get_object_vars( $this->rows[0] ) );
61
}
else
{
62
return
[];
63
}
64
}
65
}
Wikimedia\Rdbms\ResultWrapper
Result wrapper for grabbing data queried from an IDatabase object.
Definition:
ResultWrapper.php:23
Wikimedia\Rdbms\ResultWrapper\count
count()
Get the number of rows in a result object.
Definition:
ResultWrapper.php:98
Wikimedia\Rdbms\ResultWrapper\$currentPos
int $currentPos
The offset of the current row that would be returned by current() and may have been previously return...
Definition:
ResultWrapper.php:34
Wikimedia\Rdbms\SqliteResultWrapper
Definition:
SqliteResultWrapper.php:9
Wikimedia\Rdbms\SqliteResultWrapper\doFetchRow
doFetchRow()
Get the next row as an array containing the data duplicated, once with string keys and once with nume...
Definition:
SqliteResultWrapper.php:35
Wikimedia\Rdbms\SqliteResultWrapper\$rows
ArrayIterator null $rows
Definition:
SqliteResultWrapper.php:13
Wikimedia\Rdbms\SqliteResultWrapper\__construct
__construct(PDOStatement $result)
Definition:
SqliteResultWrapper.php:19
Wikimedia\Rdbms\SqliteResultWrapper\doNumRows
doNumRows()
Get the number of rows in the result set.
Definition:
SqliteResultWrapper.php:27
Wikimedia\Rdbms\SqliteResultWrapper\doFetchObject
doFetchObject()
Get the next row as a stdClass object, or false if iteration has proceeded past the end.
Definition:
SqliteResultWrapper.php:31
Wikimedia\Rdbms\SqliteResultWrapper\doFree
doFree()
Free underlying data.
Definition:
SqliteResultWrapper.php:53
Wikimedia\Rdbms\SqliteResultWrapper\doSeek
doSeek( $pos)
Modify the current cursor position to the row with the specified offset.
Definition:
SqliteResultWrapper.php:49
Wikimedia\Rdbms\SqliteResultWrapper\doGetFieldNames
doGetFieldNames()
Get the field names in the result set.
Definition:
SqliteResultWrapper.php:58
Wikimedia\Rdbms\SqliteResultWrapper\$result
PDOStatement null $result
Definition:
SqliteResultWrapper.php:11
Wikimedia\Rdbms
Definition:
ChronologyProtector.php:24
includes
libs
rdbms
database
resultwrapper
SqliteResultWrapper.php
Generated on Tue May 24 2022 23:11:15 for MediaWiki by
1.9.1