mysqli_stmt::data_seek

mysqli_stmt_data_seek

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::data_seek -- mysqli_stmt_data_seekAjuste le pointeur de résultat vers une ligne arbitraire dans le résultat mis en mémoire tampon.

Description

Style orienté objet

public mysqli_stmt::data_seek(int $offset): void

Style procédural

mysqli_stmt_data_seek(mysqli_stmt $statement, int $offset): void

Cette fonction déplace le pointeur du jeu de résultats mis en mémoire tampon vers une ligne arbitraire spécifiée par le paramètre offset.

Cette fonction ne fonctionne que sur le jeu de résultats interne mis en mémoire tampon. mysqli_stmt_store_result() doit être appelée avant la fonction mysqli_stmt_data_seek().

Liste de paramètres

statement

Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_init().

offset

Doit prendre une valeur entre zéro et le nombre total de ligne moins 1 (0..mysqli_stmt_num_rows() - 1).

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Style orienté objet

<?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();

/* Ferme la connexion */
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
/* Ouvre la connexion */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
printf("Échec de la connexion : %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if (
$stmt = mysqli_prepare($link, $query)) {

/* Exécute la requête */
mysqli_stmt_execute($stmt);

/* Lie les variables de résultat */
mysqli_stmt_bind_result($stmt, $name, $code);

/* Stock le résultat */
mysqli_stmt_store_result($stmt);

$stmt->bind_result($name, $code);

$stmt->store_result();

/* Lit la ligne n°400 */
$stmt->data_seek(399);

/* Ferme la commande */
mysqli_stmt_close($stmt);
}

printf("Ville: %s Code Pays : %s\n", $name, $code);
?>

L'exemple ci-dessus va afficher :

Ville : Benin City Code Pays : NGA

Voir aussi

add a note add a note

User Contributed Notes 1 note

up
1
phpnet at stuffonmylaptop dot com
13 years ago
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());
}
To Top