ご指摘のとおり、コミュニティmssql
ドライバーのサポートは、最新のWindowsPHPバイナリにコンパイルされていません。
現在、MDB2(2.4.1)の現在の安定したリリースは、公式のMicrosoftsqlsrv
ネイティブドライバーをサポートしていません。
ただし、MDB2のベータ版リリースで少しでも進んで生きるつもりなら、すべてが失われるわけではありません。sqlsrv
2.5.0b3リリースの一部であるMicrosoftネイティブドライバーがあります。
http://pear.php.net/package/MDB2_Driver_sqlsrv
First of all ensure that you've installed the Microsoft native driver as I described in my answer here:
Connection between MSSQL and PHP 5.3.5 on IIS is not working
Then to install the PEAR MDB2 sqlsrv driver do the following:
If you've already installed MDB2 then uninstall it:
pear uninstall mdb2
If you already have any drivers installed then you'll need to uninstall these first:
pear uninstall mdb2#mysql
Next tell PEAR that you want to allow non-stable beta packages:
pear config-set preferred_state beta
Install MDB2_Driver_sqlsrv
pear install MDB2_Driver_sqlsrv
This will install the latest MDB2 beta and the MS sqlsrv driver:
downloading MDB2_Driver_sqlsrv-1.5.0b3.tgz ...
Starting to download MDB2_Driver_sqlsrv-1.5.0b3.tgz (29,468 bytes)
.........done: 29,468 bytes
downloading MDB2-2.5.0b3.tgz ...
Starting to download MDB2-2.5.0b3.tgz (130,865 bytes)
...done: 130,865 bytes
install ok: channel://pear.php.net/MDB2_Driver_sqlsrv-1.5.0b3
install ok: channel://pear.php.net/MDB2-2.5.0b3
MDB2: Optional feature fbsql available (Frontbase SQL driver for MDB2)
MDB2: Optional feature ibase available (Interbase/Firebird driver for MDB2)
MDB2: Optional feature mssql available (MS SQL Server driver for MDB2)
MDB2: Optional feature mysql available (MySQL driver for MDB2)
MDB2: Optional feature mysqli available (MySQLi driver for MDB2)
MDB2: Optional feature oci8 available (Oracle driver for MDB2)
MDB2: Optional feature odbc available (ODBC driver for MDB2)
MDB2: Optional feature pgsql available (PostgreSQL driver for MDB2)
MDB2: Optional feature querysim available (Querysim driver for MDB2)
MDB2: Optional feature sqlite available (SQLite2 driver for MDB2)
MDB2: Optional feature sqlsrv available (MS SQL Server driver for MDB2)
MDB2: To install optional features use "pear install pear/MDB2#featurename"
It's probably advisable to knock PEAR back to only allowing stable packages again
pear config-set preferred_state stable
I just tried this with the following test script and I was able to connect to my local MS SQL Server and retrieve some data:
<?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/>";
}
?>