在Web 開發領域,通常需要在使用共享主機提供者時匯入大型資料庫文件出現。不幸的是,透過命令列存取 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