正如您正确指出的那样,对社区mssql
驱动程序的支持并未编译到最新的 Windows PHP 二进制文件中。
目前 MDB2 (2.4.1) 的当前稳定版本不支持微软官方sqlsrv
原生驱动。
但是,如果您愿意在 MDB2 的 beta 版本中稍稍靠边一点,那么一切都不会丢失。有一个 Microsoft 本机sqlsrv
驱动程序是 2.5.0b3 版本的一部分:
http://pear.php.net/package/MDB2_Driver_sqlsrv
首先,请确保您已按照我在此处的回答中所述安装了 Microsoft 本机驱动程序:
IIS 上的 MSSQL 和 PHP 5.3.5 之间的连接不起作用
然后要安装 PEAR MDB2 sqlsrv 驱动程序,请执行以下操作:
如果您已经安装了 MDB2,请卸载它:
pear uninstall mdb2
如果您已经安装了任何驱动程序,那么您需要先卸载这些驱动程序:
pear uninstall mdb2#mysql
接下来告诉 PEAR 你想允许不稳定的 beta 包:
pear config-set preferred_state beta
安装MDB2_Driver_sqlsrv
pear install MDB2_Driver_sqlsrv
这将安装最新的 MDB2 beta 和 MS sqlsrv 驱动程序:
正在下载 MDB2_Driver_sqlsrv-1.5.0b3.tgz ...
开始下载 MDB2_Driver_sqlsrv-1.5.0b3.tgz (29,468 bytes)
.........完成:29,468 字节
正在下载 MDB2-2.5.0b3.tgz ...
开始下载 MDB2-2.5.0b3.tgz(130,865 字节)
...完成:130,865 字节
安装好:channel://pear.php.net/MDB2_Driver_sqlsrv-1.5.0b3
安装好:channel://pear.php.net/MDB2-2.5.0b3
MDB2:可选功能 fbsql 可用(用于 MDB2 的 Frontbase SQL 驱动程序)
MDB2:可选功能 ibase 可用(MDB2 的 Interbase/Firebird 驱动程序)
MDB2:可选功能 mssql 可用(用于 MDB2 的 MS SQL Server 驱动程序)
MDB2:可选功能 mysql 可用(MDB2 的 MySQL 驱动程序)
MDB2:可选功能 mysqli 可用(用于 MDB2 的 MySQLi 驱动程序)
MDB2:可选功能 oci8 可用(用于 MDB2 的 Oracle 驱动程序)
MDB2:可选功能 odbc 可用(MDB2 的 ODBC 驱动程序)
MDB2:可选功能 pgsql 可用(MDB2 的 PostgreSQL 驱动程序)
MDB2:可选功能 querysim 可用(用于 MDB2 的 Querysim 驱动程序)
MDB2:可选功能 sqlite 可用(MDB2 的 SQLite2 驱动程序)
MDB2:可选功能 sqlsrv 可用(用于 MDB2 的 MS SQL Server 驱动程序)
MDB2:要安装可选功能,请使用“pear install pear/MDB2#featurename”
建议将 PEAR 重新设置为只允许稳定包
pear config-set preferred_state stable
我刚刚使用以下测试脚本进行了尝试,并且能够连接到本地 MS SQL Server 并检索一些数据:
<?php
require_once 'MDB2.php';
$dsn = array(
'phptype' => 'sqlsrv',
'username' => 'test',
'password' => 'testpass',
'hostspec' => 'localhost',
'database' => 'PEARMDBTEST',
);
$mdb2 =& MDB2::connect($dsn);
if(PEAR::isError($mdb2))
{
die($mdb2->getMessage());
}
$res =& $mdb2->query('SELECT * FROM TestData');
while (($row = $res->fetchRow())) {
echo $row['TestDataRow'] . "<br/>";
}
?>