/**
* 切分SQL文件成多个可以单独执行的sql语句
* @param $file string sql文件路径
* @param $tablePre string 表前缀
* @param string $charset 字符集
* @param string $defaultTablePre 默认表前缀
* @param string $defaultCharset 默认字符集
* @return array
*/
function cmf_split_sql($file, $tablePre, $charset = 'utf8mb4', $defaultTablePre = 'cmf_', $defaultCharset = 'utf8mb4')
{
if (file_exists($file)) {
//读取SQL文件
$sql = file_get_contents($file);
$sql = str_replace("\r", "\n", $sql);
$sql = str_replace("BEGIN;\n", '', $sql);//兼容 navicat 导出的 insert 语句
$sql = str_replace("COMMIT;\n", '', $sql);//兼容 navicat 导出的 insert 语句
$sql = str_replace($defaultCharset, $charset, $sql);
$sql = trim($sql);
//替换表前缀
$sql = str_replace(" `{$defaultTablePre}", " `{$tablePre}", $sql);
$sqls = explode(";\n", $sql);
return $sqls;
}
return [];
}

© 版权声明
文章未经允许请勿转载。
THE END
暂无评论内容