* 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>
107 lines
2.6 KiB
PHP
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;
|
|
}
|