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 ?

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 ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-02 03:57:02494parcourir

Why is my PDO prepared statement returning double results when fetching data into a CSV file?

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 :

  • PDO::FETCH_ASSOC : renvoie un tableau associatif indexé par nom de colonne.
  • PDO::FETCH_NUM : renvoie un tableau indexé indexé par colonne number.
  • PDO::FETCH_BOTH (par défaut) : renvoie un tableau indexé à la fois par le nom de colonne et le numéro de colonne.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn