2011-10-20 4 views
4

저는 거의 100MB의 example.sql 파일을 가지고 있습니다. (실제로 다른 데이터베이스의 데이터 내보내기 파일)PHP에서 mysql 스크립트 파일을 실행하는 방법은 무엇입니까?

내 응용 프로그램의 일부 인터페이스를 통해이 파일을 실행할 수있는 기능을 제공하고 싶습니다. 내가 어떻게 할 수 있는지 안내해 주시겠습니까? 간단한 텍스트 파일로 취급해야합니까? 어느 빠른 방법이라도 거기에 ???

다른 말로하면 우리는 phpMyAdmin과 같은 기능을 추가하고 싶습니다. 가져 오기 기능.

PHPclass.org의 일부 수업을 참조 할 수 있다면 좋을 것입니다.

+0

사용자가 해당 파일을 업로드하고 mysqldump 또는 그와 비슷한 내용으로 푸시하자. – user973254

답변

4
function import_file($filename){ 
    if ($file = file_get_contents($filename)){ 
     foreach(explode(";", $file) as $query){ 
      $query = trim($query); 
      if (!empty($query) && $query != ";") { 
       mysql_query($query); 
      } 
     } 
    } 
} 

이 파일이 다른 곳보다 더 세미콜론 ;를 포함하는 경우,이 기능은 쿼리

+0

나는 최선의 선택이라고 생각한다. 답변을 받아들이려고 다시 돌아올 것입니다. –

+3

실제 데이터에'; '가 포함되어 있으면 숨을 죽일 것입니다. 그러나 빨리 "더러운"을 위해, 그것은 "충분하다" –

+0

@MarcB : 와우,이 상황에 대해 생각조차하지 않았다. 이 경우 고려해야 할 사항이 많이 있습니다. – genesis

2

의 끝에서 제대로 작동하지 않습니다

import_file("files/files.sql"); 

호출 할 수있는 것은 파일 업로드 만들기 양식을 사용하여 신뢰할 수있는 사용자가 파일을 서버에 업로드 할 수 있습니다. 그런 다음 PHP에서 mysql 명령 줄 도구를 호출하여 데이터를 데이터베이스로 가져옵니다. 가져온 데이터 내에 인용 부호가있는 세미콜론이 있으면 explode (";", ...)를 시도하여이를 수행하지 못합니다.

관련 문제