Lorsque vous utilisez PHP pour faire fonctionner une base de données MySQL, nous obtenons souvent des résultats de requête via MySQLI_Query , puis utilisons MySQLI_Fetch_assoc pour lire la ligne de données par ligne. Si vous souhaitez passer à une ligne dans l'ensemble de résultats et lire les données, MySQLI_RESULT :: DATA_SEEK est utile.
Cet article expliquera comment utiliser mysqli_result :: data_seek et mysqli_fetch_assoc pour lire les données de ligne spécifiées dans l'ensemble de résultats.
mysqli_result :: data_seek (int $ offset) : déplace le pointeur interne du jeu de résultats sur la ligne spécifiée (compter à partir de 0).
mysqli_fetch_assoc (mysqli_result $ result) : obtenez une ligne de données de la position actuelle du pointeur et renvoyez le tableau associatif.
Supposons que vous exécutiez une requête, obtenez plusieurs résultats et souhaitez accéder à une certaine ligne de données au hasard, plutôt que de les lire dans l'ordre.
<?php
// Connectez-vous à la base de données
$mysqli = new mysqli("gitbox.net", "username", "password", "database");
// Vérifiez la connexion
if ($mysqli->connect_error) {
die("Échec de la connexion: " . $mysqli->connect_error);
}
// Exécuter une requête
$sql = "SELECT id, name, email FROM users";
$result = $mysqli->query($sql);
if ($result && $result->num_rows > 0) {
// Supposons que nous voulons lire le3Données de ligne(Index de0commencer,C'est,3La ligne est index2)
$targetRow = 2;
// Déplacez le pointeur vers la ligne cible
$result->data_seek($targetRow);
// Lire les données de la ligne actuelle
$row = $result->fetch_assoc();
// Données de sortie
echo "ID: " . $row['id'] . "\n";
echo "Name: " . $row['name'] . "\n";
echo "Email: " . $row['email'] . "\n";
} else {
echo "Aucune donnée n'a été trouvée";
}
// Fermer la connexion
$mysqli->close();
?>
Fonction Data_seek
DATA_SEEK consiste à localiser le pointeur de jeu de résultats sur la ligne spécifiée, et la prochaine fois que Fetch_assoc est appelé, il commencera à lire à partir de cette ligne.
L'indice de ligne commence à 0 <br> Le nombre d'index de ligne commence à 0. Si vous souhaitez lire la première ligne, Data_seek (0) ; La troisième ligne est data_seek (2) .
Restrictions de scénario applicables <br> Data_seek ne peut être utilisé que lorsque vous utilisez un ensemble de résultats qui prend en charge la mise en mémoire tampon. Par défaut, MySQLI_Query renvoie un ensemble de résultats tamponné.
Grâce à la combinaison de mysqli_result :: data_seek et mysqli_fetch_assoc , vous pouvez sauter de manière flexible pour lire n'importe quelle ligne de données dans l'ensemble de résultats, en évitant les frais généraux de performance de traverser l'ensemble des résultats. La maîtrise de cette technique vous aidera à écrire le code d'accès à la base de données plus efficace.