首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 匯入 SQL 檔案到資料庫的簡易實作

     編輯:PHP 綜合知識

核心思路

  1. 讀取 .sql 檔案內容為字串。
  2. 以分號 ; 分割成多條 SQL 語句。
  3. 逐條執行 mysql_query()(或 PDO)。

程式碼範例 (PDO 版,推薦)

<?php
$pdo = new PDO("mysql:host=localhost;dbname=test;charset=utf8", 'root', 'root');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = file_get_contents('install.sql');
$statements = array_filter(array_map('trim', explode(';', $sql)));

foreach ($statements as $stmt) {
    if ($stmt) {
        try {
            $pdo->exec($stmt);
            echo "OK: " . substr($stmt, 0, 50) . "...\n";
        } catch (PDOException $e) {
            echo "FAIL: " . $e->getMessage() . "\nSQL: $stmt\n";
        }
    }
}
echo "匯入完成";

注意事項

  • 分號分割缺陷:SQL 字串、觸發器、預存程序內可能含分號,簡單 explode(';') 會誤切。生產環境建議使用專用解析器或 mysqli_multi_query()。
  • mysqli_multi_query() 範例:
$mysqli = new mysqli('localhost', 'root', 'root', 'test');
$sql = file_get_contents('install.sql');
if ($mysqli->multi_query($sql)) {
    do {
        if ($result = $mysqli->store_result()) $result->free();
    } while ($mysqli->next_result());
}
echo $mysqli->error ? "錯誤: $mysqli->error" : "成功";

大檔案處理

超大 SQL 檔(>100MB)建議用命令列匯入,避免 PHP 記憶體/執行時間限制:

mysql -u root -p test < install.sql
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved