如何使用密码从 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 以及如何检索它?