Although the documentation says you must provide a number between 0 and count - 1, you can actually supply a negative number, which appears to be cast to positive (such as in abs()).
For example:
<?php
$db = new mysqli('localhost', 'test', 'password', 'schema');
$db->multi_query("
SELECT * FROM
(
SELECT 1 as 'position'
UNION SELECT 2 as 'position'
UNION SELECT 3 as 'position'
UNION SELECT 4 as 'position'
UNION SELECT 5 as 'position'
) as rows");
$result = $db->store_result();
for ($i = 0; $i < $result->num_rows; $i++)
{
$offset = $i;
$result->data_seek($offset);
var_dump("Seek offset is: {$offset}", $result->fetch_object());
}
for ($i = 0; $i < $result->num_rows; $i++)
{
$offset = -$i;
$result->data_seek($offset);
var_dump("Seek offset is: {$offset}", $result->fetch_object());
}mysqli_stmt::data_seek
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
mysqli_stmt::data_seek
Референца за `mysqli-stmt.data-seek.php` со подобрена типографија и навигација.
mysqli_stmt::data_seek
mysqli_stmt_data_seek
класата mysqli_driver
mysqli_stmt::data_seek -- mysqli_stmt_data_seek — Го прилагодува покажувачот на резултатот на произволен ред во тампонираниот резултат
= NULL
Напиши целосна ознака на елемент
Процедурален стил
Оваа функција го поместува покажувачот на множеството резултати од тампонираното множество резултати до произволен ред наведен од offset parameter.
Оваа функција работи само на тампонираниот внатрешен сет на резултати. mysqli_stmt_store_result() мора да се повика пред mysqli_stmt_data_seek().
Параметри
-
statement објектот како свој прв аргумент. mysqli_stmt Само процедурален стил: А mysqli_stmt_init().
offset-
Мора да биде помеѓу нула и вкупниот број на редови минус еден (0.. mysqli_stmt_num_rows() - 1).
Вратени вредности
Не се враќа вредност.
Примери
Пример #1 Обектно-ориентиран стил
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
$stmt = $mysqli->prepare($query);
$stmt->execute();
$stmt->bind_result($name, $code);
$stmt->store_result();
/* seek to row no. 400 */
$stmt->data_seek(399);
$stmt->fetch();
printf("City: %s Countrycode: %s\n", $name, $code);Пример #2 Процедурален стил
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
$stmt = mysqli_prepare($link, $query);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $name, $code);
mysqli_stmt_store_result($stmt);
/* seek to row no. 400 */
mysqli_stmt_data_seek($stmt, 399);
mysqli_stmt_fetch($stmt);
printf("City: %s Countrycode: %s\n", $name, $code);Горните примери ќе дадат излез:
City: Benin City Countrycode: NGA
Види Исто така
- mysqli_prepare() - Подготвува SQL израз за извршување
- mysqli_stmt_store_result() - Складира сет на резултати во внатрешен бафер
- mysqli_stmt_num_rows() - Враќа број на редови преземени од серверот
- mysqli_data_seek() - Го прилагодува покажувачот на резултатот на произволен ред во резултатот