Position actuelle: Accueil> Derniers articles> Comment utiliser mysqli_result :: field_seek et mysqli_fetch_assoc pour obtenir des données sur le terrain?

Comment utiliser mysqli_result :: field_seek et mysqli_fetch_assoc pour obtenir des données sur le terrain?

gitbox 2025-08-11

Comment utiliser mysqli_result :: field_seek et mysqli_fetch_assoc pour obtenir des données sur le terrain?

L'obtention de données sur le terrain dans l'ensemble de résultats de requête est une tâche courante lors de l'utilisation de l'extension MySQLI de PHP pour les opérations de base de données. L'extension MySQLI fournit plusieurs façons de traiter les ensembles de résultats, où MySQLI_RESULT :: Field_seek et MySQLI_Fetch_assoc sont deux fonctions très utiles. Field_seek vous permet de déplacer le pointeur de set de résultat vers la position de champ spécifiée, tandis que MySQLI_FETCH_ASSOC peut obtenir les données dans l'ensemble de résultats dans le tableau associatif. L'utilisation de ces deux fonctions peut le rendre plus efficace et flexible pour obtenir les données des champs requis.

1. Concepts de base

  • mysqli_result :: field_seek : Cette méthode vous permet de déplacer le pointeur de l'ensemble de résultats sur la position d'index de champ spécifié. Il affectera les données suivantes obtenues via des fonctions telles que MySQLI_Fetch_assoc , mysqli_fetch_row , etc.

  • mysqli_fetch_assoc : Cette méthode prend une ligne de données à partir de la position du pointeur de l'ensemble de résultats actuel et le renvoie en tant que tableau associatif.

2. Exemple: utilisez Field_seek et MySQLI_Fetch_assoc en combinaison

Supposons que nous ayons une table de base de données appelée utilisateurs , la structure du tableau est la suivante:

 <span><span><span class="hljs-keyword">CREATE</span></span><span> </span><span><span class="hljs-keyword">TABLE</span></span><span> users (
    id </span><span><span class="hljs-type">INT</span></span><span> </span><span><span class="hljs-keyword">PRIMARY</span></span><span> KEY,
    username </span><span><span class="hljs-type">VARCHAR</span></span><span>(</span><span><span class="hljs-number">50</span></span><span>),
    email </span><span><span class="hljs-type">VARCHAR</span></span><span>(</span><span><span class="hljs-number">100</span></span><span>),
    age </span><span><span class="hljs-type">INT</span></span><span>
);
</span></span>

Voici un exemple de PHP simple montrant comment utiliser Field_seek et MySQLI_Fetch_assoc pour obtenir des données sur le terrain.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Créer une connexion de base de données</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database_name"</span></span><span>);

</span><span><span class="hljs-comment">// Vérifiez si la connexion réussit</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Connection failed: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error);
}

</span><span><span class="hljs-comment">// Exécuter une requête</span></span><span>
</span><span><span class="hljs-variable">$query</span></span><span> = </span><span><span class="hljs-string">"SELECT id, username, email, age FROM users"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$query</span></span><span>);

</span><span><span class="hljs-comment">// Vérifiez si la requête est réussie</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span>) {
    </span><span><span class="hljs-comment">// utiliser field_seek Passez à l&#39;emplacement du champ spécifié</span></span><span>
    </span><span><span class="hljs-comment">// Supposons que nous voulons l&#39;obtenir en premier 'email' Champs(第二个Champs),Champs索引从 0 commencer</span></span><span>
    </span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">field_seek</span></span><span>(</span><span><span class="hljs-number">2</span></span><span>);  </span><span><span class="hljs-comment">// 'email' Champs的索引为2</span></span><span>

    </span><span><span class="hljs-comment">// La première ligne d&#39;obtention du résultat</span></span><span>
    </span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span><span>();

    </span><span><span class="hljs-comment">// Sortir les données de cette ligne,montrer 'email' Champs</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span>) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Email: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'email'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
    }

    </span><span><span class="hljs-comment">// Continuer à obtenir d&#39;autres lignes de données</span></span><span>
    </span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span><span>()) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Username: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'username'</span></span><span>] . </span><span><span class="hljs-string">" - Age: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'age'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
    }

    </span><span><span class="hljs-comment">// Libérez l&#39;ensemble de résultats</span></span><span>
    </span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">free</span></span><span>();
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Error: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;error;
}

</span><span><span class="hljs-comment">// Fermez la connexion de la base de données</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

3. Expliquez le code

  1. Connexion de la base de données : Tout d'abord, nous utilisons de nouveaux mysqli () pour créer une connexion à la base de données.

  2. Exécution de la requête : une requête est exécutée via $ mysqli-> query () pour interroger les champs ID , nom d'utilisateur , e-mail et âge dans le tableau des utilisateurs .

  3. Déplacez le pointeur de champ à l'aide de field_seek : composez field_seek (2) pour déplacer le pointeur du jeu de résultats vers la position du champ de messagerie (la valeur d'index est 2). À l'heure actuelle, MySQLI_FETCH_ASSOC ne renverra que des données pertinentes à partir du champ de messagerie .

  4. Obtenez et affichez les données : obtenez chaque ligne de données via mysqli_fetch_assoc () et affichez le contenu du champ de messagerie . Notez que Field_seek est valide pour les appels fetch_assoc ultérieurs, vous pouvez donc contrôler de manière flexible à quel champ commence à obtenir des données.

  5. Ensemble de résultats de version : $ result-> free () est utilisé pour libérer le jeu de résultats de la requête.

  6. Fermez la connexion de la base de données : $ mysqli-> close () Fermez la connexion de la base de données.

4. Choses à noter

  • La méthode Field_seek affecte toutes les fonctions Fetch_ * suivantes en fonction de l'ensemble de résultats actuel, alors veillez à utiliser. Assurez-vous que vous avez compris la structure et l'ordre sur le terrain des résultats de la requête avant de l'utiliser.

  • mysqli_fetch_assoc () renvoie un tableau associatif qui contient toutes les données de champ de la ligne actuelle. Le nom de champ est la clé du tableau.

  • Si l'ensemble de résultats de requête contient plusieurs champs et que vous souhaitez obtenir des données pour certains champs dans un ordre spécifique, vous pouvez contrôler le mouvement du pointeur via Field_seek pour obtenir les champs corrects lorsque MySQLI_FETCH_ASSOC .

5. Résumé

L'utilisation de mysqli_result :: field_seek et mysqli_fetch_assoc peut nous aider à gérer les résultats de la requête de manière plus flexible. En définissant la position du pointeur de champ par Field_seek , nous pouvons obtenir sélectivement des données pour un champ spécifique. Cette combinaison est particulièrement utile, surtout lorsque vous devez sauter certains champs dans les résultats de la requête, ou que vous devez ajuster de manière flexible l'ordre sur le terrain.