PDO MSSQL Server - 找不到驱动程序


PDO MSSQL Server - Driver not found

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

我已经从 http://www.microsoft.com/en-us/download/details.aspx?id=20098 下载并安装了官方微软驱动程序

我在我的phpinfo()中得到了某种SQLSRV部分。但是当我尝试创建一个新的PDO对象时,它说它没有驱动程序。我可以理解,因为它在phpinfo() PDO部分没有提到,但它有自己的部分+get_loaded_extensions也显示了sqlsrv。我想那是来自官方的 MS 驱动程序?我正在使用php_sqlsrv_53_nts.dll使用我的 Zend 服务器 CE 5.6 和 PHP 5.3.9

现在据我了解,我下载了错误的驱动程序,应该尝试PECL管理器带来的驱动程序吗?只有可用的源代码,显然我在Windows机器上,所以我可以忘记自己编译所需的一切 - 我实际上在使用powershell和我的pecl/梨安装时收到后缀错误。

有人解决这个问题吗?任何帮助非常感谢

万事如意,理查

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

extension=php_pdo_mssql.dll

在你的 php.ini.

通常这个文件(php_pdo_mssql.dll)应该在你的PHP扩展目录(C:...''php''ext)中。如果它不存在,您可以从 http://windows.php.net/download/下载 PHP,然后从那里的包中获取扩展(当然,选择一个与您的 PHP 版本相对应)。

编辑:只需阅读您的最新评论。此扩展程序现在已经可以使用很长时间了,可以认为可以正常工作。如果不允许使用它,则必须重写代码以使用本机驱动程序为 PHP 提供的函数。

另一种可能性是使用默认情况下包含在 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'");

好吧。我想这只是这些日子之一。

我从MS提供的扩展名中加载了错误的扩展名。我需要使用php_pdo_sqlsrv_53_nts而不是 php_sqlsrv_53_nts

感谢所有的帮助