如何使用密码从 MS Access 数据库中检索网页数据

Posted

技术标签:

【中文标题】如何使用密码从 MS Access 数据库中检索网页数据【英文标题】:How to retrieve data for a webpage from an MS Access database with password 【发布时间】:2011-10-07 14:16:55 【问题描述】:

我有一个 MS Access 数据库文件,我想将它复制到 mysql 中以在网页上提供服务,问题是数据库已设置密码。我想要做的是将文件上传到服务器,然后剥离密码或使用密码打开它,这样我就可以将它复制到 MySQL。 密码是已知的,无法从源头删除。 如果可能的话,我想用 php 来做这件事。

这是一个重复性事件,每天最多两次。

联系我的主机后,使用 odbc 的唯一方法是以我当前主机价格的 10 倍升级到专用主机。除非我能以另一种方式获取数据,否则这似乎是行不通的。

【问题讨论】:

一次性搬家?还是经常性的努力? 数据库文件是在一组电子秤上创建的,我想通过微控制器将文件直接从电子秤上传到服务器。 服务器基于 Linux。这个想法不可行吗? 【参考方案1】:

打开它,密码应该在连接字符串中传递...对于使用 odbc_connect 的 PHP,语法是可用的 here。既然你说密码是已知的,这应该可以工作。

要完全删除它,您只需在 Access 中打开它并保存一份不带密码的副本。我不确定这是否可以轻松自动化。如果您需要访问数据并重复传输,我会说坚持使用连接字符串中的密码。

链接到的文章中的示例:

<?php
// Microsoft SQL Server using the SQL Native Client 10.0 ODBC Driver - allows connection to SQL 7, 2000, 2005 and 2008
$connection = odbc_connect("Driver=SQL Server Native Client 10.0;Server=$server;Database=$database;", $user, $password);

// Microsoft Access
$connection = odbc_connect("Driver=Microsoft Access Driver (*.mdb);Dbq=$mdbFilename", $user, $password);

// Microsoft Excel
$excelFile = realpath('C:/ExcelData.xls');
$excelDir = dirname($excelFile);
$connection = odbc_connect("Driver=Microsoft Excel Driver (*.xls);DriverId=790;Dbq=$excelFile;DefaultDir=$excelDir" , '', '');
?> 

【讨论】:

谢谢,很遗憾,我的主机目前不支持 odbc_connect()。有其他选择吗? code.activestate.com/recipes/… - 或者只是为其他人搜索“PHP 访问连接字符串”。【参考方案2】:

这是 DSN - 少连接代码示例:

<?php
$db_connection = new COM("ADODB.Connection");

$db_connstr = "DRIVER=Microsoft Access Driver (*.mdb); DBQ=". realpath("../databases/database.mdb") ." ;DefaultDir=". realpath("../databases");
$db_connection->open($db_connstr);
$rs = $db_connection->execute("SELECT * FROM Table");
$rs_fld0 = $rs->Fields(0);
$rs_fld1 = $rs->Fields(1);
while (!$rs->EOF) 
  print "$rs_fld0->value $rs_fld1->value\n";
  $rs->MoveNext(); /* updates fields! */

$rs->Close();
$db_connection->Close();
?> 

【讨论】:

以上是关于如何使用密码从 MS Access 数据库中检索网页数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在 VB.net 中使用 ROWNUM 从 MS-Access 数据库中检索数据

如何将日期从 C# 存储到 MS-Access 以及如何检索它?

所有从 php 中的 ms access 数据库中检索数据

使用 C# 从 MS Access DB 中检索表关系

ASP.NET - VB.NET - 从 MS-Access 数据库中检索记录

从 MS Access 数据库中检索最后插入的 ID