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

西蒙妮·德·卢卡

我试图使用我的另一台服务器每天晚上00:00通过cronjob运行的PHP连接到我的Azure SQL数据库。运行时在日志中显示此错误:

 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我应该安装PDO驱动程序在我的Linux服务器上?我不确定,因为我已经在这里阅读:https : //www.php.net/manual/zh-cn/pdo.installation.php“从PHP 5.1.0起,默认情况下已启用PDO和PDO_SQLITE驱动程序。您可以需要为您选择的数据库启用PDO驱动程序;请查阅有关特定于数据库的PDO驱动程序的文档以了解有关此内容的更多信息。“因此,从理论上讲,它已经包含在我的PHP驱动程序中。我在Linux Red Hat服务器上使用PHP 7.2.26版...正在等待支持,谢谢。

彼得潘

让我先重复您的需求。我看到您正在尝试使用PHP PDO连接Azure SQL数据库,但是错误信息显示没有支持SQL Azure连接的PHP驱动程序,您的环境如下。

  1. PHP 7.4,看来你安装V7.4通过编译手动,请确保你安装到/usr/bin/usr/local/bin或其他系统的路径。
  2. Linux Server,但我不知道您使用的是什么Linux发行版,因此我假设它是Ubuntu / Debian。

接下来,首先,您需要参考PHP Version Support官方文档中的部分Microsoft PHP Drivers for SQL Server Support Matrix以了解用于Azure SQL数据库的PHP PDO驱动程序的哪个版本适用于PHP v7.4,如下图所示。

在此处输入图片说明

似乎没有适用于PHP 7.4的任何版本,但是最新版本5.6是唯一的选择。

然后,您需要移动到Download the Microsoft Drivers for PHP for SQL Server链接Microsoft SQL Server 5.6 for PHP for SQL Server for Linux和macOS,它将重定向到其GitHub发布页面,Production Release for the PHP drivers Version 5.6.0 for SQL Server并移至页面底部,如下图所示。

在此处输入图片说明

当然,您可以根据需要下载软件包,但我认为最简单的方法是通过安装sqlsrvpdo_sqlsrv通过pecl,首先要做的是在Ubuntu / Debian Linux上pecl通过via进行准备sudo apt install php-pear,然后在下面进行操作。

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv

现在,我认为您可以再次尝试使用PHP脚本,如果使用过它,可以先重新启动Apache / Nginx。


更新:有关在RHEL上使用PHP 7.2的建议,我建议参考官方教程Create PHP apps using SQL Server on RHEL以详细了解如何逐步进行操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章