为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
BIG阳 2022-08-19 15:58:36
我正在尝试使用 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...等待支持,谢谢。
查看完整描述

1 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

让我先重复一下你的需要。我看到您正在尝试使用 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 版本支持部分,了解适用于 PHP v7.4 的适用于 Azure SQL 数据库的 PHP PDO 驱动程序的版本,如下图所示。Microsoft PHP Drivers for SQL Server Support Matrix

//img1.sycdn.imooc.com//62ff42df0001f61315030592.jpg

PHP 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并移动到页面底部, 如下图所示。

//img1.sycdn.imooc.com//62ff42eb00012fd510990732.jpg

当然,您可以根据需要下载软件包,但我认为简单的方法是安装和via,第一件事是在Ubuntu / Debian Linux上准备via,然后在下面完成这些操作。sqlsrvpdo_sqlsrvpeclpeclsudo apt install php-pear

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv

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


更新:对于在RHEL上使用PHP 7.2,我建议请参阅官方教程在RHEL上使用SQL Server创建PHP应用程序,以了解如何逐步详细了解。


查看完整回答
反对 回复 2022-08-19
  • 1 回答
  • 0 关注
  • 84 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信