在Web 開發領域,通常需要在使用共用主機提供者時匯入大型資料庫檔案出現。不幸的是,透過命令列存取 MySQL 可能會受到限制,因此需要一個基於 PHP 的解決方案來解析和執行查詢。
為了解決這個挑戰,我們開發了一個名為 SplitSQL() 的強大函數來可靠地拆分資料。
SplitSQL() 利用檔案讀取法,逐行迭代檔案。它透過偵測行尾指定的分隔符號(預設)來識別查詢。組裝完整的查詢後,將立即使用 mysql_query() 執行。
<code class="php">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);</code>
以上是如何使用 PHP 有效率地將大型 MySQL 檔案匯入共享主機?的詳細內容。更多資訊請關注PHP中文網其他相關文章!