【问题标题】:MSSQL PDO could not find driverMSSQL PDO 找不到驱动程序
【发布时间】:2013-04-25 00:32:37
【问题描述】:

我正在使用通过 XAMPP 与 Microsoft SQL Server 2008 R2 (SQLEXPRESS) 一起安装的 PHP 版本 5.3.8。我已经正确安装了驱动程序(我猜)并在 php.ini 中添加了正确的行(确切地说是extension=php_pdo_sqlsrv_53_ts_vc9.dll)。

我正在尝试像这样连接到服务器:

try {

    $DBH = new PDO("mssql:host=xxxx;dbname=xxxx", 'xxxx', 'xxxx');

} catch(PDOException $e) {

    echo $e->getMessage();
}

我收到“找不到驱动程序”错误,我已经调整了各种方法来解决问题。我已经尝试了所有其他类型的驱动程序,但这是唯一一个 Apache 在启动时没有给我错误的驱动程序。当我运行 phpinfo() 时,除了 pdo_sqlsrv.log_severity 设置为 0,pdo_sqlsrv 字段都是空白的。

我从microsoft 获取了我的驱动程序,并且我已经尝试了 2.0 和 3.0

任何建议都会很棒!

【问题讨论】:

  • 修改ini文件后有没有重启xampp?

标签: php database pdo


【解决方案1】:

正如我在this 中所说的那样 请注意,您必须使用正确版本的 php_sqlsrv_xx_xts_xxx.dll 和 php_pdo_sqlsrv_xx_xts_xx.dll 文件。

例如,如果您使用 php 版本 7.4 和 64 位系统和 wamp,您必须下载并使用这些文件: php_sqlsrv_74_ts_x64.dll php_pdo_sqlsrv_74_ts_x64.dll 下载您可以使用this site: https://go.microsoft.com/fwlink/?linkid=2152937 https://docs.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server?view=sql-server-ver15

【讨论】:

    【解决方案2】:

    不确定这是不是因为运行了 CentOS x86_64 机器,但 sqlsrv 对我来说不是驱动程序,我不得不使用 dblib:

    try {
    
        $DBH = new PDO("dblib:host=xxxx;dbname=xxxx", 'xxxx', 'xxxx');
    
    } catch (PDOException $e) {
    
        echo $e->getMessage();
    }
    

    Source and thanks to.

    【讨论】:

      【解决方案3】:

      mssql 是老办法,sqlsrv 应该更合适!事实上,扩展名也被称为 (extension=php_pdo_sqlsrv_53_ts_vc9.dll) ;)

      try {
      
          $DBH = new PDO("sqlsrv:Server=xxxx;Database=xxxx", 'xxxx', 'xxxx');
      
      } catch (PDOException $e) {
      
          echo $e->getMessage();
      }
      

      希望这会有所帮助!

      来源:http://php.net/manual/fr/ref.pdo-sqlsrv.connection.php

      【讨论】:

        猜你喜欢
        • 2012-06-30
        • 2016-08-05
        • 2017-11-07
        • 2014-07-23
        • 2017-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多