2

ここでこれを尋ねなければならないのは残念です。php.netは、これに関する例外と言い訳でいっぱいのようです。

PHP5.3.6でIIS6.0を実行しています。MDB2をインストールして動作させています(ブランド外のRDBMS用にカスタム作成されたドライバーを使用している場合でも)。それはすべてうまくいっています。しかし今、私はPHPを少し標準的なテクノロジーであるMSSQLに接続する必要があります。

問題は、MDB2のmssqlドライバーでは、PHPが特別なフラグを使用してコンパイルされている必要があることです。phpバイナリで行うのは難しい:)。

コンパイラーを入手し、ソースをダウンロードして再コンパイルすることもできますが、実際に仕事を遂行するためのより良い、より標準的な方法があるのに、私は雑草の中にいるのではないかと思い始めています。

したがって、私の質問は次のとおりです。IIS6 + PHP 5.3.6の場合、MS SQLに接続するための別の、より簡単で、より一般的なルートはありますか?

4

2 に答える 2

3

ご指摘のとおり、コミュニティmssqlドライバーのサポートは、最新のWindowsPHPバイナリにコンパイルされていません。

現在、MDB2(2.4.1)の現在の安定したリリースは、公式のMicrosoftsqlsrvネイティブドライバーをサポートしていません。

ただし、MDB2のベータ版リリースで少しでも進んで生きるつもりなら、すべてが失われるわけではありません。sqlsrv2.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:

  1. 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

  2. Next tell PEAR that you want to allow non-stable beta packages:

    pear config-set preferred_state beta

  3. 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"
    
  4. 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/>";
}

?>
于 2011-07-19T23:54:51.207 に答える
1

MSは、MSSQL用のPHPドライバーを提供しています:http://www.microsoft.com/download/en/details.aspx? displaylang = en&id = 20098

于 2011-07-19T20:13:08.580 に答える