【发布时间】:2017-05-10 18:56:44
【问题描述】:
如何使用 php 代码将 .mdb 文件加载到 mysql 数据库中。
我有一个 .mdb 文件,位置是 /example/employee.mdb。我需要从考勤表中读取记录并将其插入到 mysql 的 emp_attendance 表中。
PHP 的逻辑是什么?
【问题讨论】:
-
看到这个:bullzip.com/products/a2m/info.php 转换和导入 mdb 文件
如何使用 php 代码将 .mdb 文件加载到 mysql 数据库中。
我有一个 .mdb 文件,位置是 /example/employee.mdb。我需要从考勤表中读取记录并将其插入到 mysql 的 emp_attendance 表中。
PHP 的逻辑是什么?
【问题讨论】:
最后,下面的逻辑对我有用。
$fileNm = "C:\Users\abc\Desktop\attendanceData.mdb";
$conn = new COM("ADODB.Connection") or die("ADODB Connection Faild!");
$conn->Open("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=$fileNm");
if($conn){
$data = $conn->Execute("SELECT * FROM em_attendance");
}
【讨论】:
像大多数关系数据库一样,PHP 可以使用PDO 连接到 MS Access 和 MySQL。考虑使用与 MySQL 的双重连接来执行此操作。不需要外部的第三方软件。下面的示例使用模拟表和字段。根据需要调整:
要求包括(无需安装 MSAccess.exe):
PHP 双 PDO 连接
$accdatabase="C:\Path\To\database.accdb";
$host="localhost";
$mydatabase="****";
$username="****";
$password="****";
try {
# OPEN BOTH DATABASE CONNECTIONS
$accConn = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBq=$accdatabase;Uid=Admin;Pwd=;");
$myConn = new PDO("mysql:host=$host;dbname=$mydatabase",$username,$password);
$myConn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM emp_attendance";
$accstmt = $accConn->query($sql);
$accstmt->setFetchMode(PDO::FETCH_ASSOC);
// FETCH ROWS FROM MS ACCESS
while($row = $accstmt->fetch()) {
// APPEND TO MYSQL
$mystmt = $myConn->prepare("INSERT INTO emp_attendance (empid, `date`, status, notes) VALUES (?, ?, ?, ?)");
# BIND PARAMETERS
$mystmt->bindParam(1, $row['empid'], PDO::PARAM_STR, 50);
$mystmt->bindParam(2, $row['date'], PDO::PARAM_STR, 50);
$mystmt->bindParam(3, $row['status'], PDO::PARAM_STR, 50);
$mystmt->bindParam(4, $row['notes'], PDO::PARAM_STR, 50);
# EXECUTE QUERY
$mystmt->execute();
}
}
catch(PDOException $e) {
echo $e->getMessage()."\n";
exit;
}
// CLOSE CONNECTIONS
$accConn = null;
$myConn = null;
【讨论】:
PDO 和 PHP(已弃用)odbc_ 函数都无法使用 Access ODBC 检索 Windows 中不存在的 Unicode 字符-1252 字符集。将COM 与ADO 一起使用是我能找到的正确检索这些字符的唯一方法。 (详见相关答案here。)
MDB 是 Microsoft Access 使用的数据库文件。 MDB 是 Access 自己的 基于 Access Jet 数据库引擎的格式。你可以打开 它是 Microsoft Access 的,因为它是自己的格式,也可以通过 Microsoft Excel,如果您没有 Microsoft Office,则不需要 担心。 MDB 文件也可以通过 OpenOffice.org、SAS 打开 Institute SAS、Wolfram Mathematica、Softpedia MDB Converter¸ 和 Microsoft Visual Studio 2010。可以将 MDB 文件文件转换为 .TXT 或使用 MDB 转换器的 .CSV 格式。即使你没有以上 所有你可以下载一个免费的流行工具 MDB Viewer Plus (http://download.cnet.com/MDB-Viewer-Plus/3001-10254_4-75285626.html?onid=10254) 读取数据并根据需要插入数据库。最好将文件 mdb 转换为 csv 并插入数据库。 PHP更容易使用。希望你有答案
将 Microsoft Access 文件转换为 CSV 格式的步骤
希望您的问题能得到解决。谢谢
【讨论】:
从 mdb 读取数据到 csv
从csv读取并插入mysql
或者
试试这个
http://board.phpbuilder.com/showthread.php?10365863-Convert-mdb-to-mysql
【讨论】: