PHP / PDO / SQL Server。未捕获的 PDOException:找不到驱动程序

Gra*_*ham 1 php sql-server pdo php-7

我有一个在 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";
Run Code Online (Sandbox Code Playgroud)

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

Uncaught PDOException: could not find driver
Run Code Online (Sandbox Code Playgroud)

根据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
Run Code Online (Sandbox Code Playgroud)

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

我还需要什么才能让它发挥作用?我在哪里可以找到这个驱动程序?

细节:

PHP 7.0.5
Windows 8.1
NTS x86
Run Code Online (Sandbox Code Playgroud)

Gra*_*ham 6

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

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

添加了 php.ini 行:

extension=php_pdo_sqlsrv_7_nts.dll
Run Code Online (Sandbox Code Playgroud)

  • 会投票一百次。有很多线程在问这个确切的问题,这个答案可能是整个互联网上唯一正确的答案 (2认同)