Подключение к MS SQL из PHP на IIS с использованием PEAR MDB2 - PullRequest
2 голосов
/ 20 июля 2011

Извините, что должен спросить это здесь;Похоже, что php.net полон исключений и оправданий по этому поводу.

Я использую IIS 6.0 с PHP 5.3.6.У меня установлен и работает MDB2 (даже с написанным на заказ драйвером для фирменной RDBMS).Это все работает отлично.Но теперь мне нужно подключить PHP к стандартной технологии: MS SQL.

Проблема в том, что драйвер mssql для MDB2 требует, чтобы PHP был скомпилирован с специальными флагами .Трудно сделать с php binaries:).

Я мог бы пойти по пути получения компилятора, загрузки исходного кода и перекомпиляции, но я только начинаю задаваться вопросом, попал ли я в сорняки, когда естьна самом деле это лучший, более стандартный способ выполнения работы.

Итак, мой вопрос: для IIS 6 + PHP 5.3.6 есть другой, более простой, более распространенный способ подключения к MSSQL

Ответы [ 2 ]

3 голосов
/ 20 июля 2011

Как вы правильно заметили, поддержка драйвера сообщества mssql не скомпилирована в последние двоичные файлы Windows PHP.

В настоящее время текущий стабильный выпуск MDB2 (2.4.1) не поддерживаетофициальный родной драйвер Microsoft sqlsrv.

Однако, если вы хотите немного поторопиться с бета-версией MDB2, тогда еще не все потеряно.Существует собственный драйвер Microsoft sqlsrv, который входит в состав версии 2.5.0b3:

http://pear.php.net/package/MDB2_Driver_sqlsrv

Прежде всего убедитесь, что вы установилиРодной драйвер Microsoft, как я описал в своем ответе здесь:

Соединение между MSSQL и PHP 5.3.5 на IIS не работает

ЗатемДля установки драйвера PEAR MDB2 sqlsrv выполните следующие действия:

  1. Если вы уже установили MDB2, удалите его:

    pear uninstall mdb2

    Если выУ вас уже установлены драйверы, затем вам нужно сначала удалить их:

    pear uninstall mdb2#mysql

  2. Затем скажите PEAR, что вы хотите разрешить нестабильные бета-пакеты:

    pear config-set preferred_state beta

  3. Установка MDB2_Driver_sqlsrv

    pear install MDB2_Driver_sqlsrv

    Это позволит установить последнюю бета-версию MDB2 и MSДрайвер sqlsrv:

    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. Вероятно, рекомендуется снова отбросить 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/>";
}

?>
1 голос
/ 20 июля 2011

MS предоставляет драйвер PHP для MSSQL: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=20098

...