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:
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.
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