加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

从linux上的php连接到MS Access远程.mdb文件

发布时间:2020-12-14 01:03:20 所属栏目:Linux 来源:网络整理
导读:我一直在挖网上几天,阅读非常古老的信息,这导致了很老的和不存在的网站,我理解,仍然需要达到我的目标. 我们在运行WindowsXP的服务器上有一个file.mdb,所以我需要将它添加到ODBC数据源.我这样做的步骤很简单,最后是“System DSN”,允许访问该.mdb文件 我需要
我一直在挖网上几天,阅读非常古老的信息,这导致了很老的和不存在的网站,我理解,仍然需要达到我的目标.

>我们在运行WindowsXP的服务器上有一个file.mdb,所以我需要将它添加到ODBC数据源.我这样做的步骤很简单,最后是“System DSN”,允许访问该.mdb文件
>我需要在同一台服务器上安装某种ODBC桥,这将允许我创建与此服务器的远程连接,使该桥连接到服务器ODBC DSN,并查询我的东西(找不到任何免费的ODBC桥)
>在UNIX(FreeBSD)机器上,我需要安装unixODBC和php5-odbc软件包,启用与ODBC的连接(已安装)
>要连接到远程ODBC并使用MS Access数据库驱动程序,我需要在.so文件中有unixODBC这样的驱动程序,它位于UNIX机器内(找不到任何免费的MS Access驱动程序)
>使用PHP odbc_connect(DSN,用户,密码)连接到该服务器,在DSN中我需要提供一些连接信息和驱动程序,我需要使用它(MS Access驱动程序).

纠正我,如果我弄错了,请给我更多建议,如何实现这样的联系.

解决方法

最后,我找到了解决方案.

>在Win服务器FreeSSHd上设置,配置连接帐户并将目录设置为一个,您需要
>在unix服务器sshfs上设置
>使用.mdb文件装入Win服务器目录

sshfs {user} @:/ {unix mount point} -o workaround = rename,allow_other
>在unix服务器mdbtools上设置

所以,我使用了docs中的默认PHP代码并编写了这个PHP脚本:

$rows = $cols = array();
if (($handle = popen('/usr/bin/mdb-export {unix mount point}/{file}.mdb {table} 2>&1','r')) !== FALSE) {
    while (($data = fgetcsv($handle,",")) !== FALSE) {
        $num = count($data);
        if ($row == 1) { for ($c=0; $c < $num; $c++) { $cols[] = $data[$c]; } }
        else { for ($c=0; $c < $num; $c++) { $rows[$row][$cols[$c]] = $data[$c]; } }
        $row++;
    }
    pclose($handle);
}
print_r($rows);

> /usr/bin/mdb-export的路径应该是mdb-export文件的路径(如果找不到你的话,请使用find / -name“mdb-export”).
>挂载点{unix挂载点}应该是一个空文件夹(我使用/usr/home / remotemdb)
>表{table}应该是mdb文件中的表名.使用命令mdb-tables {unix mount point} /< file> .mdb查询mdb文件中的所有可能表

不需要驱动程序,配置或其他东西,只需简单的mdbtools和文件访问,在这种情况下,通过ssh远程连接实现.在你想要的,你可以安装fuse包,自动挂载远程目录,但这是另一个问题.

希望有人帮忙.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读