Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4149052
Result.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
8 KB
Referenced Files
None
Subscribers
None
Result.php
View Options
<?php
declare
(
strict_types
=
1
);
namespace
Doctrine\DBAL
;
use
Doctrine\DBAL\Driver\Exception
as
DriverException
;
use
Doctrine\DBAL\Driver\Result
as
DriverResult
;
use
Doctrine\DBAL\Exception\NoKeyValue
;
use
Doctrine\Deprecations\Deprecation
;
use
LogicException
;
use
Traversable
;
use
function
array_shift
;
use
function
func_num_args
;
class
Result
{
private
DriverResult
$result
;
private
Connection
$connection
;
/** @internal The result can be only instantiated by {@see Connection} or {@see Statement}. */
public
function
__construct
(
DriverResult
$result
,
Connection
$connection
)
{
$this
->
result
=
$result
;
$this
->
connection
=
$connection
;
}
/**
* Returns the next row of the result as a numeric array or FALSE if there are no more rows.
*
* @return list<mixed>|false
*
* @throws Exception
*/
public
function
fetchNumeric
()
{
try
{
return
$this
->
result
->
fetchNumeric
();
}
catch
(
DriverException
$e
)
{
throw
$this
->
connection
->
convertException
(
$e
);
}
}
/**
* Returns the next row of the result as an associative array or FALSE if there are no more rows.
*
* @return array<string,mixed>|false
*
* @throws Exception
*/
public
function
fetchAssociative
()
{
try
{
return
$this
->
result
->
fetchAssociative
();
}
catch
(
DriverException
$e
)
{
throw
$this
->
connection
->
convertException
(
$e
);
}
}
/**
* Returns the first value of the next row of the result or FALSE if there are no more rows.
*
* @return mixed|false
*
* @throws Exception
*/
public
function
fetchOne
()
{
try
{
return
$this
->
result
->
fetchOne
();
}
catch
(
DriverException
$e
)
{
throw
$this
->
connection
->
convertException
(
$e
);
}
}
/**
* Returns an array containing all of the result rows represented as numeric arrays.
*
* @return list<list<mixed>>
*
* @throws Exception
*/
public
function
fetchAllNumeric
():
array
{
try
{
return
$this
->
result
->
fetchAllNumeric
();
}
catch
(
DriverException
$e
)
{
throw
$this
->
connection
->
convertException
(
$e
);
}
}
/**
* Returns an array containing all of the result rows represented as associative arrays.
*
* @return list<array<string,mixed>>
*
* @throws Exception
*/
public
function
fetchAllAssociative
():
array
{
try
{
return
$this
->
result
->
fetchAllAssociative
();
}
catch
(
DriverException
$e
)
{
throw
$this
->
connection
->
convertException
(
$e
);
}
}
/**
* Returns an array containing the values of the first column of the result.
*
* @return array<mixed,mixed>
*
* @throws Exception
*/
public
function
fetchAllKeyValue
():
array
{
$this
->
ensureHasKeyValue
();
$data
=
[];
foreach
(
$this
->
fetchAllNumeric
()
as
[
$key
,
$value
])
{
$data
[
$key
]
=
$value
;
}
return
$data
;
}
/**
* Returns an associative array with the keys mapped to the first column and the values being
* an associative array representing the rest of the columns and their values.
*
* @return array<mixed,array<string,mixed>>
*
* @throws Exception
*/
public
function
fetchAllAssociativeIndexed
():
array
{
$data
=
[];
foreach
(
$this
->
fetchAllAssociative
()
as
$row
)
{
$data
[
array_shift
(
$row
)]
=
$row
;
}
return
$data
;
}
/**
* @return list<mixed>
*
* @throws Exception
*/
public
function
fetchFirstColumn
():
array
{
try
{
return
$this
->
result
->
fetchFirstColumn
();
}
catch
(
DriverException
$e
)
{
throw
$this
->
connection
->
convertException
(
$e
);
}
}
/**
* @return Traversable<int,list<mixed>>
*
* @throws Exception
*/
public
function
iterateNumeric
():
Traversable
{
while
((
$row
=
$this
->
fetchNumeric
())
!==
false
)
{
yield
$row
;
}
}
/**
* @return Traversable<int,array<string,mixed>>
*
* @throws Exception
*/
public
function
iterateAssociative
():
Traversable
{
while
((
$row
=
$this
->
fetchAssociative
())
!==
false
)
{
yield
$row
;
}
}
/**
* {@inheritDoc}
*
* @throws Exception
*/
public
function
iterateKeyValue
():
Traversable
{
$this
->
ensureHasKeyValue
();
foreach
(
$this
->
iterateNumeric
()
as
[
$key
,
$value
])
{
yield
$key
=>
$value
;
}
}
/**
* Returns an iterator over the result set with the keys mapped to the first column and the values being
* an associative array representing the rest of the columns and their values.
*
* @return Traversable<mixed,array<string,mixed>>
*
* @throws Exception
*/
public
function
iterateAssociativeIndexed
():
Traversable
{
foreach
(
$this
->
iterateAssociative
()
as
$row
)
{
yield
array_shift
(
$row
)
=>
$row
;
}
}
/**
* @return Traversable<int,mixed>
*
* @throws Exception
*/
public
function
iterateColumn
():
Traversable
{
while
((
$value
=
$this
->
fetchOne
())
!==
false
)
{
yield
$value
;
}
}
/** @throws Exception */
public
function
rowCount
():
int
{
try
{
return
$this
->
result
->
rowCount
();
}
catch
(
DriverException
$e
)
{
throw
$this
->
connection
->
convertException
(
$e
);
}
}
/** @throws Exception */
public
function
columnCount
():
int
{
try
{
return
$this
->
result
->
columnCount
();
}
catch
(
DriverException
$e
)
{
throw
$this
->
connection
->
convertException
(
$e
);
}
}
public
function
free
():
void
{
$this
->
result
->
free
();
}
/** @throws Exception */
private
function
ensureHasKeyValue
():
void
{
$columnCount
=
$this
->
columnCount
();
if
(
$columnCount
<
2
)
{
throw
NoKeyValue
::
fromColumnCount
(
$columnCount
);
}
}
/**
* BC layer for a wide-spread use-case of old DBAL APIs
*
* @deprecated Use {@see fetchNumeric()}, {@see fetchAssociative()} or {@see fetchOne()} instead.
*
* @psalm-param FetchMode::* $mode
*
* @return mixed
*
* @throws Exception
*/
public
function
fetch
(
int
$mode
=
FetchMode
::
ASSOCIATIVE
)
{
Deprecation
::
trigger
(
'doctrine/dbal'
,
'https://github.com/doctrine/dbal/pull/4007'
,
'%s is deprecated, please use fetchNumeric(), fetchAssociative() or fetchOne() instead.'
,
__METHOD__
,
);
if
(
func_num_args
()
>
1
)
{
throw
new
LogicException
(
'Only invocations with one argument are still supported by this legacy API.'
);
}
if
(
$mode
===
FetchMode
::
ASSOCIATIVE
)
{
return
$this
->
fetchAssociative
();
}
if
(
$mode
===
FetchMode
::
NUMERIC
)
{
return
$this
->
fetchNumeric
();
}
if
(
$mode
===
FetchMode
::
COLUMN
)
{
return
$this
->
fetchOne
();
}
throw
new
LogicException
(
'Only fetch modes declared on Doctrine
\D
BAL
\F
etchMode are supported by legacy API.'
);
}
/**
* BC layer for a wide-spread use-case of old DBAL APIs
*
* @deprecated Use {@see fetchAllNumeric()}, {@see fetchAllAssociative()} or {@see fetchFirstColumn()} instead.
*
* @psalm-param FetchMode::* $mode
*
* @return list<mixed>
*
* @throws Exception
*/
public
function
fetchAll
(
int
$mode
=
FetchMode
::
ASSOCIATIVE
):
array
{
Deprecation
::
trigger
(
'doctrine/dbal'
,
'https://github.com/doctrine/dbal/pull/4007'
,
'%s is deprecated, please use fetchAllNumeric(), fetchAllAssociative() or fetchFirstColumn() instead.'
,
__METHOD__
,
);
if
(
func_num_args
()
>
1
)
{
throw
new
LogicException
(
'Only invocations with one argument are still supported by this legacy API.'
);
}
if
(
$mode
===
FetchMode
::
ASSOCIATIVE
)
{
return
$this
->
fetchAllAssociative
();
}
if
(
$mode
===
FetchMode
::
NUMERIC
)
{
return
$this
->
fetchAllNumeric
();
}
if
(
$mode
===
FetchMode
::
COLUMN
)
{
return
$this
->
fetchFirstColumn
();
}
throw
new
LogicException
(
'Only fetch modes declared on Doctrine
\D
BAL
\F
etchMode are supported by legacy API.'
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Aug 19 2026, 19:02 (6 w, 4 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
66/ee/3d6f00392668d0c1328d5360f08a
Default Alt Text
Result.php (8 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment