웹 개발 영역에서 공유 호스팅 제공업체를 공통적으로 사용하면서 대용량 데이터베이스 파일을 가져와야 하는 필요성 발생합니다. 안타깝게도 명령줄을 통한 MySQL 액세스는 제한될 수 있으므로 쿼리 구문 분석 및 실행을 위한 PHP 기반 솔루션이 필요합니다.
이 문제를 해결하기 위해 SplitSQL()이라는 강력한 기능이 개발되어 과도한 메모리를 소비하지 않고 데이터베이스 파일을 개별 쿼리로 변환합니다.
SplitSQL()은 파일 읽기 접근 방식을 활용하여 파일을 한 줄씩 반복합니다. 줄 끝에서 지정된 구분 기호(기본적으로;)를 감지하여 쿼리를 식별합니다. 완전한 쿼리가 조합되면 mysql_query()를 사용하여 즉시 실행됩니다.
function SplitSQL($file, $delimiter = ';')
{
set_time_limit(0);
if (is_file($file) === true)
{
$file = fopen($file, 'r');
if (is_resource($file) === true)
{
$query = array();
while (feof($file) === false)
{
$query[] = fgets($file);
if (preg_match('~' . preg_quote($delimiter, '~') . '\s*$~iS', end($query)) === 1)
{
$query = trim(implode('', $query));
if (mysql_query($query) === false)
{
echo '<h3>ERROR: ' . $query . '</h3>' . "\n";
}
else
{
echo '<h3>SUCCESS: ' . $query . '</h3>' . "\n";
}
while (ob_get_level() > 0)
{
ob_end_flush();
}
flush();
}
if (is_string($query) === true)
{
$query = array();
}
}
return fclose($file);
}
}
return false;
}
// Test data
$file = '/path/to/db_dump.sql';
SplitSQL($file);
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3