首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 資料庫批量匯入 PHP 腳本實作

     編輯:MySQL 資料庫相關知識

腳本簡介

本文提供一個功能完整的 PHP 腳本,支援 MySQL 資料庫的單行與批量 SQL 匯入。腳本包含連線設定、SQL 執行、建表處理、錯誤回報等功能,並內建簡易的 Web 介面供操作使用。

核心功能

  • 支援多行 SQL 語句批次執行(以分號分隔)
  • 自動偵測 CREATE TABLE 語句並先刪除同名資料表
  • 提供視覺化介面輸入連線參數與 SQL 內容
  • 即時顯示執行結果與錯誤訊息
  • 相容 magic_quotes_gpc 自動處理跳脫字元

程式碼結構說明

1. 環境初始化與資料清理

error_reporting(7);
// 處理 register_globals 與 magic_quotes_gpc
if (function_exists('ini_get')) {
    $onoff = ini_get('register_globals');
} else {
    $onoff = get_cfg_var('register_globals');
}
if ($onoff != 1) {
    @extract($_POST, EXTR_SKIP);
    @extract($_GET, EXTR_SKIP);
}
// 遞迴移除跳脫字元
function stripslashes_array(&$array) { ... }
if (get_magic_quotes_gpc()) {
    $_POST = stripslashes_array($_POST);
}

2. 連線與執行邏輯

if ($_GET['action'] == "sql") {
    $servername = isset($servername) ? $servername : 'localhost';
    $dbusername = isset($dbusername) ? $dbusername : 'root';
    $dbpassword = isset($dbpassword) ? $dbpassword : '';
    $dbname = isset($dbname) ? $dbname : '';
}

if ($doquery) {
    if (@mysql_connect($servername, $dbusername, $dbpassword) 
        AND @mysql_select_db($dbname)) {
        echo "資料庫連接執行!\n";
    } else {
        echo "出錯: " . mysql_error();
    }
    
    $a_query = explode(";", $_POST['sql_query']);
    while (list(,$query) = each($a_query)) {
        $query = trim($query);
        if ($query) {
            if (strstr($query, 'CREATE TABLE')) {
                // 自動處理建表:先 DROP 再 CREATE
                ereg('CREATE TABLE ([^ ]*)', $query, $regs);
                mysql_query("DROP TABLE IF EXISTS $regs[1]");
                echo "<p>正在建立表: $regs[1] …… ";
                $result = @mysql_query($query);
                echo $result ? "成功!</p>\n" : "失敗!</p>\n";
            } else {
                $result = @mysql_query($query);
                echo $result ? "SQL語句成功執行\n" : "出錯: " . mysql_error();
            }
        }
    }
    mysql_close();
}

3. Web 介面

腳本內嵌 HTML 表單,提供主機、帳號、密碼、資料庫名稱輸入欄位,以及 SQL 文字區域與執行按鈕,採用簡潔 CSS 樣式。

使用注意事項

  • 本腳本使用已棄用的 mysql_* 函數,現代專案建議改用 PDO 或 MySQLi。
  • 生產環境請加強權限控管,避免暴露資料庫管理介面。
  • 大量資料匯入時注意 max_allowed_packet 設定。

這個腳本雖然年代久遠,但展示了早期 PHP 操作 MySQL 的典型模式,適合學習參考或維護舊系統時使用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved