【发布时间】:2020-01-27 18:16:56
【问题描述】:
我正在尝试使用 PHP 连接到我的 Azure SQL 数据库,该数据库由我的其他服务器每晚 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... 期待支持,谢谢。
【问题讨论】:
-
它是这么说的,但你还没有检查。在shell的命令行执行
php -m | grep 'pdo_sqlite',你有什么回馈吗? -
查看phpinfo();我可以看到:1) --enable-pdo=shared 2) API 扩展 mysqli,pdo_mysql ' 3) PDO 驱动程序 mysql, sqlite ENABLED。我实际上需要 PDO 驱动程序的 MySQL 驱动程序支持,而且似乎我有,但我不知道为什么它给了我这个异常。
-
那就用
mysqli吧,它可以做任何PDO可以做的事情