PDO sqlsrv: 找不到驱动程序

新手上路,请多包涵

我试图连接到 PHP 中的 SQL Server。在我的本地机器上使用 XAMPP,一切正常。但现在我要把我的应用程序带到生产服务器上。

在此服务器上安装了 Microsoft IIS 6.1 并运行 PHP 版本 7.0.7 。我还从 这里 安装了 ODBC 驱动程序。接下来我在我的 php.ini 文件中取消注释以下行:

 extension=php_sqlsrv_7_nts.dll
extension=php_pdo_sqlsrv_7_nts.dll

我从 微软官方网站 得到了这些文件。

我的问题是什么?

不幸的是,在我重新启动 IIS 之后。 PDO 函数抛出 PDOException 错误并显示以下消息:

 could not find driver

对于连接,我使用以下函数,它在我的本地机器上运行良好:

 try {
    $con = new PDO("sqlsrv:Server=" . SERVER . ";Database=" . DATABASE, USERNAME, PASSWORD);
    // set the PDO error mode to exception
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo "No connection: " . $e->getMessage();
    exit;
}

我还能做什么?

原文由 Julian Schmuckli 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 804
2 个回答

在Windows Server上找到错误日志后,我自己解决了这个错误。

我的日志中出现此错误:

 [21-Apr-2017 07:12:14 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library '...\ext\php_pdo_sqlsrv_7_nts.dll' - %1 is not a valid Win32 application. in Unknown on line 0

然后我再次下载了 驱动程序 并安装了 x64-Driver。最后它没有任何问题。

原文由 Julian Schmuckli 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果对某人有帮助,这里是详细过程。 PHP Version - 7.4

  1. 从此链接下载并提取 .dll 文件 - https://learn.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server?view=sql-服务器ver15

  2. 将文件粘贴到 C:\xampp\php\ext 中,您的路径可能不同。

  3. php.ini 在底部或扩展部分添加这两行。

     extension=php_sqlsrv_74_ts_x64.dll
    extension=php_pdo_sqlsrv_74_ts_x64.dll

  1. 重新启动您的 Xampp 服务器,我建议您重新启动您的计算机,然后一切都会正常运行。

检查是否启用了 SqlSRV

像这样使用 phpinfo()http://localhost/dashboard/phpinfo.php 检查 -

SQLSrv 驱动程序检查 PHP 信息

希望,它会帮助别人。

原文由 Maniruzzaman Akash 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏