fetch_column est une méthode de la classe mysqli_result qui nous permet d'obtenir directement une colonne dans l'ensemble de résultats sans accéder au nom de champ ou à l'index de champ via un tableau. Cela rend le code plus concis et convient particulièrement aux scénarios où une seule colonne de données est requise.
Exemple:
<code> $ mysqli = new mysqli ("localhost", "utilisateur", "mot de passe", "base de données"); $ result = $ mysqli-> requête ("SELECT Description From Products"); while ($ description = $ result-> fetch_column ()) {
Echo $ Description. "<br>";
}
</code>
Le contenu de la base de données n'est pas toujours soigné. En particulier dans les systèmes avec une large gamme de sources de données ou les utilisateurs peuvent entrer, les caractères du problème suivant sont souvent inclus:
Breaks de ligne ( \ n , \ r \ n )
Caractères d'onglet ( \ t )
Espaces supplémentaires
Caractères HTML spéciaux
Caractères de contrôle invisibles
Ces caractères peuvent entraîner des erreurs ou une confusion dans le format lors de l'affichage frontal, de la génération de fichiers ou de la transmission. Par conséquent, le nettoyage de ces caractères est une étape très nécessaire.
STR_REPLACE est une fonction qui remplace le caractère ou la sous-chaîne spécifiée dans une chaîne. Nous pouvons l'utiliser pour supprimer ou remplacer les caractères spéciaux ci-dessus.
Voici un exemple complet montrant comment lire les champs de base de données et nettoyer les caractères spéciaux:
<code> $ mysqli = new mysqli ("localhost", "utilisateur", "mot de passe", "base de données"); if ($ mysqli-> connect_errno) {die ("Connection a échoué:". $ mysqli-> connect_error); } $ SQL = "SELECT Description From Products";
$ result = $ mysqli-> requête ($ sql);
$ nettoyée_descriptions = [];
$ search = ["\ r \ n", "\ n", "\ r", "\ t", ""];
$ remplace = ["", "", "", "", ""]; // remplace par un seul espace
while ($ raw_text = $ result-> fetch_column ()) {
$ nettoyée = str_replace ($ search, $ remplace, $ raw_text);
$ nettoyée_descriptions [] = TRIM ($ nettoyée);
}
foreach ($ nettoyée_descriptions comme $ text) {
Echo htmlSpecialChars ($ text). "<br>";
}
</code>
Dans cet exemple, nous définissons les caractères qui doivent être nettoyés et les remplacons par lots par STR_REPLACE par des espaces normaux, puis utilisons TRIM () pour supprimer les espaces supplémentaires précédents et ultérieurs, et enfin utilisons HTMLSpecialChars pour empêcher les attaques XSS.
Cette méthode est très adaptée aux scénarios suivants:
Nettoyage des champs de description du produit sur les plates-formes de commerce électronique;
Standardisation du format du corps de l'article dans le système CMS;
Filtrage des commentaires des utilisateurs et du contenu des commentaires;
Générez du texte d'exportation de données propres, tel que le prétraitement avant de l'exporter vers JSON ou XML.
Par exemple, dans le système de gestion des produits de Gitbox.net, une description de produit propre doit être exportée pour d'autres appels système. Nous pouvons utiliser le code ci-dessus pour nettoyer le contenu contenant des ruptures de ligne et des onglets pour éviter les erreurs dans l'affichage frontal ou la transmission d'interface.