猿问

连接到 SQL Server.PDOException Object (Azure) 时出错

我正在尝试使用 PHP 连接到我的 Azure SQL 数据库,PHP 由我的其他服务器每天晚上 00:00 通过 cronjob 运行。当它运行时,会在日志中显示此错误:


 Error connecting to SQL Server.PDOException Object

(

    [message:protected] => could not find driver

    [string:Exception:private] => 

    [code:protected] => 0

    [file:protected] => /home3/nappuntx/public_html/modifiche/export.php

    [line:protected] => 73

    [trace:Exception:private] => Array

        (

            [0] => Array

                (

                    [file] => /home3/nappuntx/public_html/modifiche/export.php

                    [line] => 73

                    [function] => __construct

                    [class] => PDO

                    [type] => ->

                    [args] => Array

                        (

                            [0] => sqlsrv:server = tcp:prgsophie.database.windows.net,1433; Database = test_db

                            [1] => userTest

                            [2] => pswtest

                        )


                )


        )


    [previous:Exception:private] => 

    [errorInfo] => 

)

1

如前所述:https://docs.microsoft.com/it-it/sql/connect/php/microsoft-php-driver-for-sql-server?redirectedfrom=MSDN&view=sql-server-ver15 我应该在我的Linux服务器中安装PDO驱动程序吗?我不确定,因为我已经读过这里: https://www.php.net/manual/en/pdo.installation.php “ PDO和PDO_SQLITE驱动程序默认启用从PHP 5.1.0开始。您可能需要为您选择的数据库启用PDO驱动程序;请参阅特定于数据库的 PDO 驱动程序的文档以了解有关该驱动程序的详细信息。“所以从理论上讲,它已经包含在我的PHP驱动程序中。我在我的 Linux Red Hat 服务器上使用 PHP 版本 7.2.26...等待支持,谢谢。


BIG阳
浏览 85回答 1
1回答

慕雪6442864

让我先重复一下你的需要。我看到您正在尝试使用 PHP PDO 连接 Azure SQL 数据库,但错误信息显示没有支持 SQL Azure 连接的 PHP 驱动程序,并且您的环境如下所示。PHP 7.4,看来你安装v7.4是通过手动编译的,请确保你已经安装到或者其他系统路径。/usr/bin/usr/local/binLinux Server,但我不知道你用的是什么Linux发行版,所以我会假设那是Ubuntu / Debian。接下来,首先,需要参考官方文档的 PHP 版本支持部分,了解适用于 PHP v7.4 的适用于 Azure SQL 数据库的 PHP PDO 驱动程序的版本,如下图所示。Microsoft PHP Drivers for SQL Server Support MatrixPHP 7.4似乎没有任何版本,但最新版本5.6是唯一的选择。然后,您需要移动到下载适用于SQL Server的PhP的Microsoft驱动程序以单击用于SQL Server的PHP的Microsoft驱动程序5.6 for Linux和macOS的链接,它将重定向到其GitHub发布页面 PHP驱动程序的生产版本5.6.0 for SQL Server并移动到页面底部, 如下图所示。当然,您可以根据需要下载软件包,但我认为简单的方法是安装和via,第一件事是在Ubuntu / Debian Linux上准备via,然后在下面完成这些操作。sqlsrvpdo_sqlsrvpeclpeclsudo apt install php-pearsudo pecl install sqlsrv sudo pecl install pdo_sqlsrv现在,我认为您可以再次尝试您的PHP脚本,如果您使用它,可以先重新启动Apache / Nginx。更新:对于在RHEL上使用PHP 7.2,我建议请参阅官方教程在RHEL上使用SQL Server创建PHP应用程序,以了解如何逐步详细了解。
随时随地看视频慕课网APP
我要回答