사용자가 매일 보내는 메시지 로그를 보관하는 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
'MySql' 카테고리의 다른 글
MySQL Apache Derby와 MySQL의 차이점은 무엇입니까 (0) | 2020.10.03 |
---|---|
MySQL 키워드를 사용하여 PHP mysql 검색 여러 테이블 (0) | 2020.10.03 |
MySQL 매우 간단한 사이트를위한 PHP 관리 백엔드 구축 (0) | 2020.10.03 |
MySQL, phpMyAdmin : TIMESTAMP는 항상 NOW 함수를 실행합니다. (0) | 2020.10.03 |
MySQL 하나의 테이블에 두 개의 MySQL 타임 스탬프 열 (0) | 2020.10.03 |
댓글