在 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中文网其他相关文章!