phpmyadmin/libraries/classes/Dbal/ResultInterface.php
Kamil Tekiela 902d1a1e77
Add native return type hints (#18126)
* Add remaining native return type hints to flush out bugs

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Cast the mixed value to int

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Fix tests

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* getAutoIncrement() is supposed to return string

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Cast values to string in DummyResult

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Make getCollation() return non-nullable string

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Cast seqInIndex to int

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Cast $cardinality to int

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* createFile may return false

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Remove redundant cast

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Update baselines

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

---------

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2023-02-23 15:43:36 -03:00

107 lines
2.6 KiB
PHP

<?php
/**
* Extension independent database result interface
*/
declare(strict_types=1);
namespace PhpMyAdmin\Dbal;
use Generator;
use IteratorAggregate;
use PhpMyAdmin\FieldMetadata;
/**
* Extension independent database result interface
*
* @extends IteratorAggregate<array<string, (string|null)>>
*/
interface ResultInterface extends IteratorAggregate
{
/**
* Returns a generator that traverses through the whole result set
* and returns each row as an associative array
*
* @psalm-return Generator<int, array<string, string|null>, mixed, void>
*/
public function getIterator(): Generator;
/**
* Returns the next row of the result with associative keys
*
* @return array<string,string|null>
*/
public function fetchAssoc(): array;
/**
* Returns the next row of the result with numeric keys
*
* @return array<int,string|null>
*/
public function fetchRow(): array;
/**
* Returns a single value from the given result; false on error
*/
public function fetchValue(int|string $field = 0): string|false|null;
/**
* Returns all rows of the result
*
* @return array<int, array<string,string|null>>
*/
public function fetchAllAssoc(): array;
/**
* Returns values from the first column of each row
*
* @return array<int, string|null>
*/
public function fetchAllColumn(): array;
/**
* Returns values as single dimensional array where the key is the first column
* and the value is the second column,
* e.g. "SELECT id, name FROM users"
* produces: ['123' => 'John', '124' => 'Jane']
*
* @return array<string, string|null>
*/
public function fetchAllKeyPair(): array;
/**
* Returns the number of fields in the result
*/
public function numFields(): int;
/**
* Returns the number of rows in the result
*
* @psalm-return int|numeric-string
*/
public function numRows(): string|int;
/**
* Adjusts the result pointer to an arbitrary row in the result
*
* @param int $offset offset to seek
*
* @return bool True if the offset exists, false otherwise
*/
public function seek(int $offset): bool;
/**
* Returns meta info for fields in $result
*
* @return array<int, FieldMetadata> meta info for fields in $result
*/
public function getFieldsMeta(): array;
/**
* Returns the names of the fields in the result
*
* @return array<int, string> Fields names
*/
public function getFieldNames(): array;
}