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

PHP 實作 MySQL 資料遷移至 Access:ODBC 互通範例

     編輯:MySQL 資料庫相關知識

情境

將 MySQL 表 sqltable (id, name, sex, email) 資料遷移至 Access 表 Accesstable (相同結構)。

完整 PHP 程式碼

<?php
// 1. 連接 MySQL
$mysql_conn = mysql_connect("localhost", "", "");
mysql_select_db("mydatabase", $mysql_conn);

// 2. 查詢來源資料
$sql = "SELECT * FROM sqltable";
$result = mysql_query($sql, $mysql_conn);

// 3. 連接 Access (ODBC)
$odbc_conn = odbc_connect("DSN名稱", "使用者", "密碼");

// 4. 逐筆寫入 Access
while ($row = mysql_fetch_assoc($result)) {
    $insert_sql = sprintf(
        "INSERT INTO Accesstable (id, name, sex, email) VALUES (%d, '%s', '%s', '%s')",
        $row['id'],
        addslashes($row['name']),
        addslashes($row['sex']),
        addslashes($row['email'])
    );
    odbc_exec($odbc_conn, $insert_sql);
}

// 5. 關閉連接
odbc_close($odbc_conn);
mysql_close($mysql_conn);
?>

關鍵點說明

  1. MySQL 連接:使用 mysql_* 函數(舊版),新專案建議改用 mysqli 或 PDO
  2. ODBC 設定:需預先在 Windows「ODBC 資料來源管理員」建立 System DSN 指向 Access 檔案
  3. 資料清洗:addslashes() 防止單引號破壞 SQL,正式專案建議用參數化查詢
  4. 效能考量:逐筆 INSERT 較慢,大量資料建議批次處理或 LOAD DATA 等大量匯入工具
  5. 錯誤處理:生產碼需加入 try-catch、交易控制、失敗重試邏輯

現代化改寫建議 (PDO)

<?php
$pdo_mysql = new PDO("mysql:host=localhost;dbname=mydatabase", "user", "pass");
$pdo_access = new PDO("odbc:DSN名稱", "user", "pass");

$stmt = $pdo_mysql->query("SELECT * FROM sqltable");
$insert = $pdo_access->prepare("INSERT INTO Accesstable (id, name, sex, email) VALUES (?, ?, ?, ?)");

$pdo_access->beginTransaction();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $insert->execute([$row['id'], $row['name'], $row['sex'], $row['email']]);
}
$pdo_access->commit();
?>

優勢:參數化防注入、交易保證原子性、統一介面支援多種資料庫。

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