如何从带有密码的MS Access数据库检索网页的数据


How to retrieve data for a webpage from an MS Access database with password

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

这是一个反复发生的事件,最多一天两次。

联系我的主机后,使用odbc的唯一方法是升级到专用主机,价格是我当前主机的10倍。看起来这个是不行的,除非我可以用另一种方法获得数据

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

要完全删除它,你只需要在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" , '', '');
?> 

下面是DSN - Less连接代码示例:

<?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();
?>