如何在 Linux 上启用 PDO_ODBC?

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();

        }

    }


撒科打诨
浏览 108回答 1
1回答

喵喵时光机

驱动程序和扩展程序不是一回事。您可以在 microsoft.com 网站上找到驱动程序,像这样或与您的特定版本要求类似:https://learn.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&nbsp;/etc/php/7.2/cli/php.ini,但你真正想要的是 apache SAPI php.ini,很可能位于/etc/php/7.2/apache/php.ini.&nbsp;转到您的php_ini()URL,正确的路径显示在第一个或第二个表格中。
打开App,查看更多内容
随时随地看视频慕课网APP