«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему мой подготовленный оператор PDO возвращает двойные результаты при извлечении данных в файл CSV?

Почему мой подготовленный оператор PDO возвращает двойные результаты при извлечении данных в файл CSV?

Опубликовано 8 ноября 2024 г.
Просматривать:439

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

Подготовленный оператор PDO извлекает двойные результаты

Пользователь столкнулся с проблемой, когда его подготовленный оператор PDO возвращает двойные результаты при выводе данных в CSV-файл. Рассматриваемый код использует функцию $result_get_rows->fetch() для извлечения строк из базы данных.

Понимание метода Fetch()

Функция fetch() Метод объекта PDOStatement используется для извлечения строк из набора результатов. По умолчанию он возвращает строки как индексированные массивы (по номеру столбца), так и ассоциативные массивы (по имени столбца).

Решение проблемы

Чтобы исправить двойные результаты , рекомендуется указать, как должны возвращаться строки результатов, с помощью параметра fetch_style метода fetch(). Этот параметр принимает одну из следующих констант:

  • PDO::FETCH_ASSOC: возвращает ассоциативный массив, индексированный по имени столбца.
  • PDO::FETCH_NUM: возвращает индексированный массив, индексированный по столбцу. число.
  • PDO::FETCH_BOTH (по умолчанию): возвращает массив, индексированный как по имени столбца, так и по номеру столбца.

Модифицированный код

Используя PDO::FETCH_ASSOC, код можно изменить следующим образом:

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

Эта модификация гарантирует, что строки будут возвращаться в виде ассоциативных массивов, эффективно предотвращая дублирование значений при выводе в файл CSV.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3