Maison > Article > base de données > Pourquoi mon instruction préparée par PDO renvoie-t-elle des résultats doubles lors de la récupération de données dans un fichier CSV ?
Requête préparée PDO récupérant des résultats doubles
Un utilisateur a rencontré un problème où son instruction préparée PDO renvoie des résultats doubles lors de la sortie de données vers un Fichier CSV. Le code en question utilise la fonction $result_get_rows->fetch() pour récupérer les lignes de la base de données.
Comprendre la méthode Fetch()
Le fetch( ) d'un objet PDOStatement est utilisée pour récupérer les lignes d'un ensemble de résultats. Par défaut, il renvoie les lignes sous forme de tableaux indexés (par numéro de colonne) et de tableaux associatifs (par nom de colonne).
Résoudre le problème
Pour rectifier les doubles résultats , il est recommandé de spécifier comment les lignes de résultats doivent être renvoyées à l'aide du paramètre fetch_style de la méthode fetch(). Ce paramètre accepte l'une des constantes suivantes :
Code modifié
En utilisant PDO::FETCH_ASSOC, le code peut être modifié comme suit :
<code class="php">while ($rows_get_rows = $result_get_rows->fetch(PDO::FETCH_ASSOC)) { $csv .= '"'.join('","', str_replace('"', '""', $rows_get_rows))."\"\n"; }</code>
Cette modification garantira que les lignes sont renvoyées sous forme de tableaux associatifs, empêchant efficacement la duplication des valeurs lors de la sortie vers le fichier CSV. .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!