텍스트 파일 (3098)을 데이터베이스로 가져와야합니다. 각 파일은 다른 테이블에 있어야합니다. 내 생각은 각 파일에 대한 새 테이블을 만드는 루프를 사용하는 것입니다. PHP에서 foreach
을 사용하여 모든 파일을 통과하거나 mysql 루프를 실행하고 파일의 이름을 LOAD DATA LOCAL INFILE
뒤에 넣어야합니다. 어떻게 내가 theese 테이블을 만들 수 있을지 궁금합니다 (이름에 변수를 사용할 수도 있습니다). 내 작업을 수행하는 다른 아이디어가 도움이 될 것입니다.여러 텍스트 파일을 mysql 데이터베이스의 다른 테이블로 가져 오기
답변
PHP의 glob()
을 사용하여 모든 .txt 파일을 반복하고 각 파일에서 MySQL의 LOAD DATA INFILE
명령을 실행하십시오. 그러나 먼저 MySQL에 적절한 데이터 유형 컬럼을 가진 목적지 테이블을 생성하십시오. 그런 다음 PHP에서 가져 오기 코드를 실행하십시오. 위에서 언급 한 것처럼이 방법은 모든 .txt 파일이 동일한 구조로되어있어 모두 데이터베이스 테이블로 가져 오는 것으로 가정합니다.
MYSQL(콘솔 또는 코드 일회 실행)
CREATE TABLE destinationTable (
ID int NOT NULL AUTO_INCREMENT PRIMARY KEY,
col1 int(11),
col2 varchar(255),
col3 decimal(10,2),
col4 date,
...
);
PHP(반복 루프를 사용하여 이하에서 쉼표로 구분 파일을 가정 실제 분리로 조정)
// OPEN DATABASE CONNECTION
$dbh = new PDO("mysql:host=$host;dbname=$database",$username,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
foreach (glob("/path/to/folder/*.txt") as $file) {
$sql = "LOAD DATA INFILE '".$file."'
INTO TABLE destinationTable
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\r\n';";
$dbh->query($sql);
}
// CLOSE CONNECTION
$dbh = null;
그건 좋은데,하지만 난 PHP와 MySQL을 연결하는 문제가 있습니다. 내 도메인에서 PHP를 실행하고 있지만 연결할 수있는 데이터베이스는 phpMyAdmin의 해당 데이터베이스입니다. phpMyAdmin은 'LOAD DATA INFILE'을 지원하지 않습니다. 그래서 내 XAMPP 서버를 연결하는 방법을 알고 있다면 ..... @ Parfait –
Phpmyadmin은 MySQL 서버의 GUI 콘솔 일뿐입니다. MySQL 설정에서 'LOAD DATA INFILE'이 활성화되어 있지 않습니다. [this] (http://stackoverflow.com/questions/10762239/mysql-enable-load-data-local-infile)을 참조하십시오. 또한, 다른 오픈 소스 언어 -Perl, Python, R 등과 같이 터미널/명령 줄 (브라우저, 아파치, 서버 등 필요 없음)에서 PHP 스크립트를 실행할 수도 있습니다. – Parfait
- 1. MySQL 테이블을 테이블로 가져 오기
- 2. MySQL 데이터베이스의 여러 테이블에서 값 가져 오기
- 3. 여러 파일을 표로 가져 오기
- 4. SSIS 여러 개의 플랫 파일을 여러 테이블로 가져 오기
- 5. 수백만 개의 레코드를 텍스트 파일에서 mysql 테이블로 가져 오기
- 6. 12000 개의 파일을 하나의 테이블로 가져 오기
- 7. 여러 텍스트 파일을 가져 오기 R
- 8. CSV 파일 데이터를 MySQL 테이블로 가져 오기
- 9. PHP가 로컬 CSV 파일을 MYSQL 테이블로 가져 오기
- 10. VBA 반복문 텍스트 파일 및 다른 테이블로 가져 오기
- 11. VB2005 고정 폭 텍스트 파일을 Access2007 테이블로 가져 오기 ... 거의?
- 12. 거리 테이블에서 mysql 테이블로 데이터 가져 오기
- 13. CSV 데이터를 MySQL 테이블로 가져 오기
- 14. 여러 텍스트 파일을 Matlab으로 가져 오기
- 15. 여러 텍스트 파일을 Excel로 가져 오기
- 16. MySql 데이터베이스의 텍스트 바꾸기
- 17. 여러 XML 파일을 원격 SQL Server 테이블로 가져 오기
- 18. MySQL 데이터베이스의 CSV 데이터 가져 오기
- 19. 데이터베이스의 한 테이블에서 다른 데이터베이스의 다른 테이블로 데이터 업데이트
- 20. JSON 파일을 Google BigQuery 테이블로 가져 오기
- 21. xml 파일을 SQL Server 테이블로 가져 오기
- 22. 텍스트 파일 행을 데이터베이스의 서로 다른 두 테이블로 나눕니다.
- 23. mysql의 한 테이블에서 다른 테이블로 가져 오기
- 24. 한 테이블에서 다른 테이블로 데이터 가져 오기
- 25. 여러 개의 CSV 파일을 mysql로 가져 오기
- 26. Access에서 연결된 SQL Server 테이블로 텍스트 파일 가져 오기
- 27. 여러 개의 (100 개 이상) Excel 파일을 MySQL 테이블로 가져 오기
- 28. Excel 워크 시트를 데이터 테이블로 가져 오기
- 29. 다른 데이터베이스의 테이블에서 다른 테이블로 복사 날짜
- 30. "LOAD DATA"명령을 사용하여 mysql 테이블로 CSV 파일 가져 오기
'LOAD DATA LOCAL INFILE'뒤에 가져올 파일의 이름을 입력하십시오. 어떤 다른 이름을 넣을까요 ?? :-) 또한'어떻게 내가 theese 폴더를 만들 수 있을지 궁금 하다니'- 어떤 폴더? 해당 발언 전에 폴더를 언급하지 않았습니다. – ADyson
P. 당신은 아마도 MySQL을 사용하여이 코드를 작성할 수 있지만 PHP가 조금 더 쉽게 만들 수 있다고 생각합니다. – ADyson
@ADyson은 테이블이 아닌 테이블을 의미합니다 : D. –