1

我正在尝试在 linux(Ubuntu 18.04) 环境中通过我的网络对 Microsoft Access 数据库运行 php(7.2) 查询。我使用 Nginx 作为我的网络服务器和 MDBTools 作为我的驱动程序。我设置了 odbc.ini 和 odbcinst.ini DSN,并尝试了多种访问数据库的方法。我的连接字符串中的“仪表板”是我的 DSN 的名称。

这是我的 php 查询脚本:

<html>
<body>
<?php


try{
    $conn = new PDO('odbc:dashboard');
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (Exception $e){
    die("Could not access database. <br> Error: $e");
}
echo "<p>";
$problems = $conn->prepare("SELECT * FROM tbl_PlanetSections");
$problems->execute();
$result = $problems->fetchColumn();
var_dump($result);

echo "</p>";
?>
</body>
</html>

当我$ php Query.php在终端中运行时,脚本按预期执行。当我在 nginx 网络服务器中加载我的页面时,我收到此错误:

PDOException: SQLSTATE[00000] SQLConnect: 0 in /srv/me/www/Query.php:8 堆栈跟踪: #0 /srv/me/www/Query.php(8): PDO->__construct('odbc:dashboard ') #1 {主}

由于 try/catch 结束了我的脚本,第 8 行(我初始化新 PDO 的行)之后没有任何内容执行。

我为初始化行尝试了多种不同的语法,但没有任何效果。我是否遗漏了一些明显的东西,或者这个特定的设置不能完成?

谢谢

4

0 回答 0