1

我想使用PDO_ODBC(在 Centos 7 x64 位上)运行 Microsoft Access 数据库。但不幸的是,我在页面上收到此错误:

could not find driver

首先,我通过我的connection.php查看问题,但我的代码似乎没有问题(在 Windows 7 x64 位上测试)。

然后我认为驱动程序尚未启用,我查看phpinfo()页面,是的驱动程序尚未启用。

然后我进入php.ini以启用驱动程序。我取消注释php.ini中的以下行:

extension=pdo_odbc

然后我使用以下命令重新启动 apache:

# /etc/init.d/apache2 restart

之后我查看phpinfo()页面,不幸的是我设置的设置尚未启用,这是phpinfo(): phpinfo() 页面的屏幕截图。

你能告诉我如何在 Linux (CentOS 7) 上启用 PDO_ODBC 吗?

更新以显示我的连接

连接.php

<?php 

    $dsn = "{Microsoft Access Driver (*.mdb, *.accdb)}";
    $db = "/home/www/html/cetak_absensi/uploaded/db_access/my_access_db.mdb";
    $user = "";
    $pass = "";

    if (!file_exists($db)) {
        die("File is not exists ! " . $db);
    }else{
        try {
            $koneksi = new PDO("odbc:DRIVER=".$dsn.";charset=UTF-8; Dbq=".$db."; Uid=".$user."; Pwd=".$pass.";");
            $koneksi->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch (PDOException $e) {
            echo "There is an error : <i>" . $e->getMessage() . "</i>";
            die();
        }
    }
4

1 回答 1

0

驱动程序和扩展程序不是一回事。

您可以在 microsoft.com 网站上找到驱动程序,如下所示或类似您的特定版本要求:

https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15

您也可以尝试安装 GNU 软件包,例如“FreeTDS”。

另一个问题是,您正在编辑错误的php.ini文件。

运行时,php -i | grep....您正在执行cliPHP 的 SAPI /etc/php/7.2/cli/php.ini,但您真正想要的是 apache SAPI php.ini,很可能位于/etc/php/7.2/apache/php.ini. 转到您的php_ini()URL,正确的路径显示在显示的第一个或第二个表中。

于 2020-05-11T18:06:02.877 回答