"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 데이터를 CSV 파일로 가져올 때 PDO 준비 문이 이중 결과를 반환하는 이유는 무엇입니까?

데이터를 CSV 파일로 가져올 때 PDO 준비 문이 이중 결과를 반환하는 이유는 무엇입니까?

2024-11-08에 게시됨
검색:320

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() 메서드의 fetch_style 매개변수를 사용하여 결과 행을 반환하는 방법을 지정하는 것이 좋습니다. 이 매개변수는 다음 상수 중 하나를 허용합니다.

  • PDO::FETCH_ASSOC: 열 이름으로 인덱싱된 연관 배열을 반환합니다.
  • PDO::FETCH_NUM: 열로 인덱싱된 인덱싱된 배열을 반환합니다. number.
  • PDO::FETCH_BOTH (기본값): 열 이름과 열 모두로 인덱싱된 배열을 반환합니다. number.

수정된 코드

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