使用 php 導入 sql 文件

就是將一個.sql 文件轉成一條條的sql數組,方便在程序中執行sql,雖然功能很是片面,不過剛剛好夠用。

以下是代碼

/**
 * 讀取sql文件爲數組
 * @param $sqlFile sql 文件路徑
 * @param string $prefix 添加表前綴
 * @return array|bool
 */
function get_sql_array($sqlFile, $prefix = '')
{
    if (!file_exists($sqlFile)) return false;
    $str = file_get_contents($sqlFile);
    $str = preg_replace('/(--.*)|(\/\*(.|\s)*?\*\/)|(\n)/', '', $str);
    if (!empty($prefix)) {
        $str = preg_replace_callback(
            "/(TABLE|INSERT\\s+?INTO|UPDATE|DELETE\\s+?FROM|SELECT.+?FROM|LEFT\\s+JOIN|JOIN|LEFT)([\\s]|[\\s`])+?(\\w+)([\\s`]|[\\s(])+?/is",
            function ($matches) use ($prefix) {
                return str_replace($matches[3], $prefix . $matches[3], $matches[0]);
            },
            $str);
    }
    $list = explode(';', trim($str));
    foreach ($list as $key => $val) {
       if( empty($val) ){
           unset($list[$key]);
       }else{
           $list[$key].=';';
       }
    }
    return array_values($list);
}

主要就是去掉下注釋,然後轉換成數組形式,還支持在導入SQL的同時加上表前綴。

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章