"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2024-11-08
Parcourir:781

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

Instruction 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()

La méthode fetch() La méthode 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 corriger 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 :

while ($rows_get_rows = $result_get_rows->fetch(PDO::FETCH_ASSOC)) {
  $csv .= '"'.join('","', str_replace('"', '""', $rows_get_rows))."\"\n";
}

Cette modification garantira que les lignes sont renvoyées sous forme de tableaux associatifs, empêchant ainsi la duplication des valeurs lors de la sortie vers le fichier CSV.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3