본문 바로가기
MySql

MySQL PHP를 사용하여 mysql 테이블을 .txt 또는 .doc 파일로 내보내기

by 베이스 공부 2020. 10. 3.
반응형

사용자가 매일 보내는 메시지 로그를 보관하는 mysql 테이블이 있습니다. 내가하고 싶은 것은 하루에 한 번 메시지 로그를 텍스트 파일로 내보내고 어떻게 해야할지 모르겠습니다. 우리 서버에는 phpmyadmin이 있으며 테이블을 텍스트 파일로 수동으로 내보낼 수 있지만 A) phpmyadmin이 하루에 한 번이 파일을 자동으로 내보내도록하거나 B) PHP 코드로 내보내기를 작성하는 방법을 모릅니다. 내 사이트의 사용자가 내 보낸 파일을 다운로드 할 수 있도록하고 싶습니다. PHP로 작성된 사이트. 이 질문에 답하는 데 필요한 다른 정보가 있으면 알려주세요!

 

해결 방법

 

NULL, 문자 세트 등을 처리하지 않는 한 자신 만의 롤링에주의하십시오.

첫 번째 대안 :

<?php
$pdo = new PDO(...);
$results = $pdo->query("SELECT * FROM myTable INTO OUTFILE 'data.txt'");
$dummy = $result->fetchAll(); 

data.txt 파일은 MySQL 서버에 작성됩니다. 디렉토리는 mysqld 프로세스의 uid로 쓰기 가능해야합니다. 기존 파일을 덮어 쓰지 않으며 FILE SQL 권한이 있어야합니다.

두 번째 대안 : mysqldump를 사용하여 플랫 텍스트 파일로 출력합니다 (@OMG Ponies 언급 됨).

mysqldump -t -T <directory> <database> <table>

이것은 INTO OUTFILE 처럼 작동하며 MySQL 서버 호스트에서 실행되어야하며 디렉토리는 mysqld uid에 의해 쓰기 가능해야합니다.

세 번째 옵션 : mysql 클라이언트 및 출력 텍스트로 쿼리 실행 :

mysql -B -e "SELECT * FROM MyTable" <database> > mytable.txt

이것은 모든 호스트에서 실행할 수 있으며 특별한 권한이나 디렉토리 권한이 필요하지 않습니다. 그러나 NULL은 mysqldump 또는 INTO OUTFILE 에서처럼 처리되지 않을 수 있습니다.

 

참조 페이지 https://stackoverflow.com/questions/6574927

 

 

반응형

댓글