【问题标题】:PHP / PDO / SQL Server. Uncaught PDOException: could not find driverPHP / PDO / SQL Server。未捕获的 PDOException:找不到驱动程序
【发布时间】:2018-05-27 06:51:44
【问题描述】:

我有一个在 PHP 5.6 中工作但在 PHP 7.0 中不工作的简单脚本:

$conn = new PDO("sqlsrv:Server=10.6.2.105;Database=mydb", "myuname", "mypwd");
$sql = "SELECT TOP 3 txt FROM mytab";
foreach ($conn->query($sql) as $row)
    print $row["txt"] . "\r\n";

当我在 PHP 7.0 中运行它时,我收到以下错误:

Uncaught PDOException: could not find driver

根据http://php.net/manual/en/pdo.installation.php,我的 php.ini 文件中不需要 extension=php_pdo.dll 在 5.3 以上版本的 windows 安装。

我确实有以下几点:

extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_sqlite.dll

另外,我可以直接使用sql server,只是不能使用PDO。

我还需要什么才能使它正常工作?我在哪里可以找到这个驱动程序?

详情:

PHP 7.0.5
Windows 8.1
NTS x86

【问题讨论】:

标签: php sql-server pdo php-7


【解决方案1】:

已经下载了驱动,还是不行。为驱动程序找到了一个新站点,这个站点有效。

https://github.com/Microsoft/msphpsql/releases

添加了php.ini行:

extension=php_pdo_sqlsrv_7_nts.dll

【讨论】:

  • 会投票一百次。有很多线程在问这个确切的问题,而这个答案可能是整个互联网上唯一正确的答案
【解决方案2】:

您说得对,文档说不再需要显式启用 PDO 扩展。

但是,您的 php.ini 文件中似乎没有启用 MSSQL 驱动程序本身,因为您只列出了 MySQL、OCI 和 SQLite。所以添加这一行来启用扩展:

extension=php_pdo_mssql.dll

【讨论】:

    猜你喜欢
    • 2017-05-13
    • 2018-12-29
    • 1970-01-01
    • 2017-05-28
    • 2017-02-13
    • 2016-08-30
    • 1970-01-01
    • 2012-03-07
    相关资源
    最近更新 更多