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

时间:2017-12-13 11:36:56

标签: 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";

当我在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 for windows installs。

我确实有以下内容:

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

2 个答案:

答案 0 :(得分:2)

已经下载了驱动程序但它没有工作。找到一个新的驱动程序站点,这个工作。

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

添加了php.ini一行:

extension=php_pdo_sqlsrv_7_nts.dll

答案 1 :(得分:0)

您说得对,不再需要明确启用PDO扩展,这是正确的。

然而,似乎你的php.ini文件中没有启用MSSQL驱动程序本身,因为你只列出了MySQL,OCI和SQLite。因此,添加此行以启用扩展名:

extension=php_pdo_mssql.dll