Реклама: Новые сервера Lineage 2

Решение проблемы «Call to undefined function mssql_connect()» в PHP

5 августа 2011
Ранее мы уже рассматривали эту ошибку в статье «установка сайта для ПТС», но что делать, если проблема не решилась с помощью библиотек php_mssql.dll и ntwdblib.dll?

Взаимодействие PHP и MsSQL

В решении этой проблемы нам поможет библиотека php_dblib (FreeTDS), которую можно загрузить по ссылке — dblib.7z [155.86 Kb] (cкачиваний: 296). В архиве содержится 2 папки: PHP 5.2 и PHP 5.3, внутри которых есть еще две: TS и NTS.

  • PHP 5.2 и PHP 5.3 — версия установленного интерпретатора
  • TS и NTS — тип, Thread Safe и соответственно Non Thread Safe


Перед установкой нам необходимо знать, какая версия и тип PHP установлен на нашем вебсервере. Для этого создаете файл phpinfo.php в www директории вебсервера со следующим кодом:

<?php
    
    /**
     * Выведем только интересующую нас информацию
     * Для этого передаем аргумент INFO_GENERAL
     */
    phpinfo(INFO_GENERAL);

Открываем в браузере эту страницу и извлекаем интересующие нас пункты. У меня следующая конфигурация:

  • PHP Version 5.3.6
  • Thread Safety enabled


Отсюда стает известным, какую библиотеку мне необходимо подключить. Копируем php_dblib.dll из «PHP 5.3\TS» в php\ext и в конфигурационном файле php.ini перед строкой:

extension=php_mysql.dll

Добавляем:

extension=php_dblib.dll

Сохраняем изменения и перезапускаем Apache. Проверить работу библиотеки можно простым кодом:

<?php
    
    if (function_exists('mssql_connect'))
    {
        echo 'Библиотека php_dblib.dll установлена правильно!';
    }

Если все сделали правильно, то появится сообщение «Библиотека php_dblib.dll установлена правильно!» если нет, — начинайте сначала. Спасибо за внимание.