Maison  >  Article  >  base de données  >  Pourquoi ma déclaration préparée par PDO Fetch() renvoie-t-elle des résultats doubles ?

Pourquoi ma déclaration préparée par PDO Fetch() renvoie-t-elle des résultats doubles ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-03 02:43:30613parcourir

Why Does My PDO Prepared Statement Fetch() Return Double Results?

L'instruction préparée PDO Fetch() renvoie des résultats doubles

Lors de l'utilisation d'instructions préparées PDO, les résultats obtenus à partir de la méthode fetch() peuvent parfois semblent être dupliqués. Cela se produit lorsque les données souhaitées sont récupérées deux fois par ligne, ce qui entraîne deux fois le nombre de colonnes attendu dans la sortie.

Ce problème se produit lors de la récupération des données à l'aide du mode PDO::FETCH_BOTH par défaut, qui récupère les résultats. indexé à la fois par nom de colonne et par numéro de colonne. Pour éviter cette duplication, spécifiez un autre style de récupération, tel que :

  • PDO::FETCH_ASSOC: Renvoie un tableau indexé par nom de colonne, évitant la duplication provoquée par le numéro de colonne. index.
  • PDO::FETCH_NUM: Renvoie un tableau indexé par numéro de colonne, éliminant ainsi le besoin d'indexation du nom de colonne.

En utilisant l'une ou l'autre de ces méthodes, récupérez modes, vous pouvez récupérer le nombre correct de colonnes pour chaque ligne, garantissant que le résultat s'affiche comme prévu.

Voici un exemple d'utilisation de PDO::FETCH_ASSOC :

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

Ce code récupérera les données sous forme de tableau associatif, éliminant les colonnes en double.

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