Php PDO MSSQL服务器-未找到驱动程序

Php PDO MSSQL服务器-未找到驱动程序,php,sql-server,pdo,driver,Php,Sql Server,Pdo,Driver,我目前正在尝试连接MSSQL 2012 Express上的localdb 我已从下载并安装了官方的microsoft驱动程序 我在phpinfo()中得到了某种类型的SQLSRV部分。但是当我尝试创建一个新的PDO对象时,它会说它没有驱动程序。我可以理解,因为phpinfo()PDO部分没有提到它,但它有自己的部分+get_load_扩展也显示了sqlsrv。我想那是官方的MS司机发来的吧?我正在使用php_sqlsrv_53_nts.dll 使用我的Zend服务器CE5.6和PHP5.3.9

我目前正在尝试连接MSSQL 2012 Express上的localdb

我已从下载并安装了官方的microsoft驱动程序

我在phpinfo()中得到了某种类型的SQLSRV部分。但是当我尝试创建一个新的PDO对象时,它会说它没有驱动程序。我可以理解,因为phpinfo()PDO部分没有提到它,但它有自己的部分+get_load_扩展也显示了sqlsrv。我想那是官方的MS司机发来的吧?我正在使用php_sqlsrv_53_nts.dll 使用我的Zend服务器CE5.6和PHP5.3.9

现在据我所知,我下载了错误的驱动程序,应该试试PECL经理带来的驱动程序吗?这里只有可用的源代码,显然我是在windows机器上,所以我可以忘记我自己编译所需的一切——实际上,在使用powershell和我的pecl/pear安装时,我得到了后缀错误

有人解决了那个问题吗?非常感谢您的帮助

祝你一切顺利,
Richard

PDO扩展与Microsoft提供的本机驱动程序不同。对于PDO,必须启用

extension=php_pdo_mssql.dll
在php.ini中

通常,该文件(php_pdo_mssql.dll)应该位于php扩展目录(C:…\php\ext)中。如果它不在那里,你可以从那里下载PHP,然后从那里的包中获取扩展(当然,获取一个与你的PHP版本相对应的扩展)


//编辑:请阅读您的最新评论。此扩展现在可用很长一段时间,可以被视为有效。如果不允许使用它,则必须重写代码以使用本机驱动程序为PHP提供的函数。

好的。我想这只是其中的一天

我从MS提供的扩展加载了错误的扩展。我需要使用
php\u pdo\u sqlsrv\u 53\nt
而不是
php\u sqlsrv\u 53\u nts


感谢所有的帮助

另一种可能是使用默认包含在php扩展中的odbc驱动程序,但是您可能仍然需要在
php.ini
中取消对它们的注释

extension=php_pdo_odbc.dll
不要忘记在之后重新启动服务器;-)

然后像这样使用它:

$db = new PDO('odbc:Driver={SQL Server};Server=192.168.x.x;Database=DatabaseName; Uid=User;Pwd=Password');
$stmt = $db->query("SELECT the_usual FROM aTable WHERE all='well'");

您在php.ini中启用了pdo mssql吗?@PLB是的,在我的
扩展名=php_sqlsrv_53_nts.dll
之前,我启用了pdo mssql,但它没有更改。我也多次重新启动了我的Apache。但还是要看看您是否遗漏了什么。@PLB谢谢-唯一可能导致一些问题的是我没有加载php_pdo_mssql,但这是在php.net上进行的实验,建议我们使用MS适配器:(我的一项小研究表明,如果不启用
pdo_mssql.dll
,就无法使用pdo连接msserver。也许我搜索不好。