2011-08-07 3 views

답변

2

어떻게?

는 bar.php :

<?php `mysql < foo.sql`; 

Execution OperatorsDocsUsing mysql in Batch ModeDocs 참조하십시오.

이 것이 좋습니다 [...] 연습, 왜 [...]입니까?

작업에 적합한 도구를 선택하는 것이 좋습니다. mysql 커맨드 라인 인터페이스는 매우 강력하고 빠르며 잘 테스트되었습니다. 그것은 당신이 찾고있는 것을합니다.

관련 :Loading .sql files from within PHPBest practice: Import mySQL file in PHP; split queries.

+0

틱은 명령 줄 실행 파일 실행과 동일합니까? * 참고, 나는 몰랐다. * –

+0

@ Jared Farrish : 네, 그렇습니다. 쉘 스크립트와 마찬가지로 [Execution Operators] (http://php.net/manual/en/language.operators.execution.php)를 비교하십시오. – hakre

+0

와우, 당신은 매일 새로운 것을 배웁니다. –

0
$contents = get_file_contents('foo.sql'); 
$queries = explode(';', $contents); 
foreach($queries as $query) { 
    mysql_query($query); 
} 

나는 그 일을 잘못했다고 생각하지 않습니다.

+0

글쎄, ';' 이것을 쓸모 없게 만든다. – hakre

+0

@hakre 네가 맞다.';'를 포함하는 문자열이 문제가 될 수도있다. 어쩌면 우리는'preg_split() '을 사용하여 처리 할 수있다. – nobody

+1

스크립트를 향상 시키려하지 않는다. 완전한 SQL MySQL 파서를 작성하지 않으면 실패하지만, CLI 클라이언트에 이미 필요합니다. 또는 [PHPMyAdmin] (http://www.phpmyadmin.net/home_page/index.php) 코드에 이러한 코드가있을 수 있습니다. – hakre

2

mysqli::multi_query은 다른 옵션입니다.

+1

+1, 하나의 우려지만, 코드는 php4 호환되지 않습니다. – nobody

+0

그렇다면 터보 파스칼과 호환되지 않습니다. 당신은 여전히 ​​신경을 쓰는 작은 사람들 중 하나입니까? – Evert

관련 문제