Хотите подключить PHP5 к MS SQL SERVER 2005 - PullRequest
1 голос
/ 03 марта 2011

У меня есть приложение, которое я сделал с помощью PHP и MSSQL2000, но теперь хочу подключить его к базе данных MSSQL2005. Это всегда дает сбой, и после некоторого исследования мне сказали скачать ntwdblib.dll и заменить старый в моем каталоге PHP, что я и сделал, но все равно не могу подключиться к нему. Я также раскомментировал расширения MSSQL в моем файле php.ini.

Пожалуйста, кто-нибудь может мне помочь с этим?

Ответы [ 3 ]

1 голос
/ 03 марта 2011

http://www.php.net/manual/en/mssql.installation.php

Расширение MSSQL включено добавив расширение = php_mssql.dll в php.ini. Чтобы заставить эти функции работать, вы должны скомпилировать PHP с --with-mssql [= DIR], где DIR - это префикс установки FreeTDS. И FreeTDS должен быть скомпилирован с использованием --enable-msdblib.

также

Функции MS SQL являются псевдонимами функций Sybase , если PHP скомпилирован с расширением Sybase и без расширения MS SQL.


Просто спрашиваю. У вас есть функция mssql_connect? Или соединение не удается? В случае сбоя подключения обязательно включите TCP / IP в MSSQL (с помощью диспетчера конфигурации SQL Server). И я также вспомнил о включении Named Pipes, но я не уверен, что это необходимо.

В качестве альтернативы вы можете посмотреть COM и ADODB.

Пример COM и ADODB, подключение к SQL Server с использованием аутентификации Windows:

    $this->m_conn = new COM("ADODB.Connection");
    $this->m_conn->CommandTimeout=1200;
    $dsn="Provider=SQLNCLI;Data Source=server_name;Integrated Security=SSPI;Initial Catalog=database_name;Application Name=YourAppName - ".$user['name'];
    $this->m_conn->Open($dsn);
    if(!$this->m_conn)
        throw new Exception("Could not start ADO",101);
    $this->m_comm = new COM("ADODB.Command");
    $this->m_comm->ActiveConnection=$this->m_conn;
    $this->m_comm->CommandTimeout=1200;

Затем выполните команду

    $this->m_comm->CommandText=$sql;
    $res=$this->m_comm->Execute();

Затем извлеките данные

    if(($num_cols=$res->Fields->Count())>=1)
    {
        $return=array();
        while(!$res->EOF)
        {
            $row=array();
            for($i=0;$i<$num_cols;$i++)
                $row[$res->Fields($i)->name]=$res->Fields($i)->value;
            $res->MoveNext();
            $return[]=$row;
        }
    }

    $res->Close();
    return $return;

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

EDIT : Вы можете определить свои собственные mssql_connect (), mssql_command () и т. Д., Используя ADO. Это обходной путь, если обычное расширение mssql не будет работать.

0 голосов
/ 07 марта 2011

большое спасибо за вашу помощь.На самом деле я нашел способ заставить его работать. Прежде всего позвольте мне начать с того, что я сравнил с системными требованиями

МОЯ СИСТЕМА
ОС: -Win xP SP2
PHP: - 5.3.5
MSSQL 2005
Собственный клиент SQL 2005

Обязательно

Рекомендуется: -Win xP SP3
PHP: - 5.2.4 или новее
Собственный клиент MSSQL Server 2008 (на том же компьютере работает php)
Драйвер SQL Server для PHP

после обновления Windows до пакета обновления3 Затем я загрузил и установил собственный клиент MSSQL Server 2008, затем установил драйвер SQL Server для PHP 2.0, который запрашивает каталог для сохранения файлов DLL.Я перехожу в каталог php, а затем в папку 'ext', куда он скопировал файлы dll.Затем перейдите в файл php.ini и добавьте эти две строки в раздел «Динамические расширения».

extension = php_sqlsrv_53_ts_vc6.dll
extension = php_pdo_sqlsrv_53_ts_vc6.dll

Затем перезапустите мой веб-сервер и Booommm.... у меня все заработало ... проверила тестовое соединение с базой данных, и оно оказалось успешным ..

Надеюсь, что это поможет другим, и спасибо всем за вашу помощь, действительно ценю это. Мир

0 голосов
/ 04 марта 2011

Вы также можете попробовать встроить PDO-оболочку базы данных из php.

Вот некоторая информация о PDO: PDO

А вот информация об использованииMSSQL с PDO MSSQL и PDO

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...