"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué mi declaración preparada por PDO arroja resultados dobles al recuperar datos en un archivo CSV?

¿Por qué mi declaración preparada por PDO arroja resultados dobles al recuperar datos en un archivo CSV?

Publicado el 2024-11-08
Navegar:267

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

Declaración preparada de PDO obteniendo resultados dobles

Un usuario encontró un problema en el que su declaración preparada de PDO devuelve resultados dobles al enviar datos a un Archivo CSV. El código en cuestión utiliza la función $result_get_rows->fetch() para recuperar las filas de la base de datos.

Comprensión del método Fetch()

El método fetch() El método de un objeto PDOStatement se utiliza para recuperar filas de un conjunto de resultados. De forma predeterminada, devuelve filas como matrices indexadas (por número de columna) y matrices asociativas (por nombre de columna).

Resolviendo el problema

Para rectificar los resultados dobles , se recomienda especificar cómo se deben devolver las filas de resultados utilizando el parámetro fetch_style del método fetch(). Este parámetro acepta una de las siguientes constantes:

  • PDO::FETCH_ASSOC: devuelve una matriz asociativa indexada por nombre de columna.
  • PDO::FETCH_NUM: devuelve una matriz indexada indexada por columna número.
  • PDO::FETCH_BOTH (predeterminado): devuelve una matriz indexada tanto por el nombre de la columna como por el número de la columna.

Código modificado

Al usar PDO::FETCH_ASSOC, el código se puede modificar de la siguiente manera:

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

Esta modificación garantizará que las filas se devuelvan como matrices asociativas, lo que evitará eficazmente la duplicación de valores al enviarlos al archivo CSV.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3