![将 PHP 连接到 Microsoft Access ODBC](https://linux22.com/image/1112605/%E5%B0%86%20PHP%20%E8%BF%9E%E6%8E%A5%E5%88%B0%20Microsoft%20Access%20ODBC.png)
我们的一名员工创建了一个 Microsoft Access 数据库,并围绕它构建了一个 Joomla! 模块。它当前在 WAMP 服务器上运行,并与 adb 文件建立 ODBC 连接。如何在 Ubuntu 上为 Access 数据库创建 ODBC 连接?目前,我愿意将数据库本地放在我的 Ubuntu 服务器上,或者放在某个 SMB 共享上。已经有人提议将其从 Access 移动到 MySql。可能最终会这样,但我真的被迫寻找其他选择。有人知道这是否可行以及如何实现它吗?
答案1
替代纯 Linux 中运行的 JET 数据库引擎的选择非常少。请记住,访问文件只是平面文件,它是 Microsoft 提供的一款软件,实际上用于解析和运行 SQL 命令。不出所料,Microsoft 不提供 Linux 端口。
Mysql 和 PHP 是天作之合,所以你可以考虑切换。如果 PHP 代码很好,切换将毫不费力。
答案2
您可以从 MS Access 移动到 MSSQL 或 MySQL 或 PostgreSQL,但您必须移动它某处如果你希望Linux下的PHP能够读取它。
到处都有关于从 PHP 访问 Jet 数据库的指南,但它们都是障眼法——它们都假设你正在运行 PHP在 Windows 机器上安装了 MS Access,并使用 Windows 专用的 ODBC 驱动程序打开与 Access 捆绑在一起的 Jet(“access”)文件。这对 Linux 来说毫无用处。
答案3
阅读此链接:
在 Ubuntu 上使用 PDO、ODBC 和 FreeTDS 从 PHP 访问 Microsoft SQL Server
按照以下说明从 Ubuntu 服务器上的 PHP 访问 SQL Server 数据库:
安装软件包freetds-bin、freetds-common、tdsodbc、odbcinst、php5-odbc 和 unixodbc。这提供了您需要的库。
将 /usr/share/doc/freetds-common/examples/odbcinst.ini 的内容复制到 /etc/odbcinst.ini。这会将 FreeTDS 驱动程序注册到 ODBC 层。
Restart your webserver to load the ODBC module into PHP.
就这样!现在你应该可以开始运行了。尝试使用类似下面的方法测试数据库连接:
<?php
try
{
$db = new PDO('odbc:Driver=FreeTDS; Server=hostname_or_ip; Port=port; Database=database_name; UID=username; PWD=password;');
}
catch(PDOException $exception)
{
die("Unable to open database.<br>Error message:<br><br>$exception.");
}
echo '<h1>Successfully connected!</h1>';
$query = 'SELECT * FROM table_name';
$statement = $db->prepare($query);
$statement->execute();
$result = $statement->fetchAll(PDO::FETCH_NUM);
?>