PHP Неустранимая ошибка: вызов функции undefined mssql_connect()

Я никогда раньше не использовал php и пытаюсь подключиться к экземпляру SQL Server 2008 на машине под управлением Windows IIS7 и PHP5.3.

Я загрузил и установил SQLSRV30.EXE из здесь в C:\Program Files (x86)\PHP\ext, добавив его в C:\Program Files (x86)\PHP\php.ini:

extension=php_sqlsrv_53_nts.dll

Затем перезагрузите весь сервер. Я все еще получаю фатальные ошибки в моем файле журнала, говоря:

PHP Fatal error:  Call to undefined function mssql_connect()

Что мне нужно сделать для подключения к Microsoft SQL Server 2008 из PHP 5.3, работающего на IIS7/Windows Server 2008? Я уверен, что это действительно глупо, что мне не хватает...

FULL PHPINFO → http://demo.mandibleweb.com/zapified/hello.php

phpinfo():

PHP Version 5.3.10





System 

Windows NT MWD001 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 



Build Date 

Feb 2 2012 20:10:58 



Compiler 

MSVC9 (Visual C++ 2008) 



Architecture 

x86 



Configure Command 

cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" "--disable-zts" "--disable-isapi" "--disable-nsapi" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8-11g=C:\php-sdk\oracle\instantclient11\sdk,shared" "--with-enchant=shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet" "--with-mcrypt=static" "--disable-static-analyze" 



Server API 

CGI/FastCGI 



Virtual Directory Support 

disabled 



Configuration File (php.ini) Path 

C:\Windows 



Loaded Configuration File 

C:\Program Files (x86)\PHP\php.ini 

Ответы

Ответ 1

Я только что попытался установить это расширение на своем dev-сервере.

Во-первых, убедитесь, что расширение правильно включено. Ваш вывод phpinfo() не выглядит полным.

Если он действительно установлен правильно, ваш phpinfo() должен иметь раздел, который выглядит следующим образом: enter image description here

Если вы не получите этот раздел в phpinfo(). Убедитесь, что вы используете правильную версию. Существуют как небезопасные, так и потокобезопасные версии расширения.

Наконец, проверьте настройки extension_dir. По умолчанию это: extension_dir = "ext", большую часть времени он работает нормально, но если он не пытается: extension_dir = "C:\PHP\ext".

=============================================== ============================

ИЗМЕНИТЬ новую информацию:

Вы используете неправильную функцию. mssql_connect() является частью расширения Mssql. Вы используете расширение microsoft, поэтому используйте sqlsrv_connect() для API для драйвера microsoft, посмотрите SQLSRV_Help.chm, который должен быть извлечен в ваш каталог ext при извлечении расширения.

Ответ 2

php.ini, вероятно, необходимо прочитать: extension=ext\php_sqlsrv_53_nts.dll

Или переместите файл в тот же каталог, что и исполняемый файл php. Это то, что я сделал с моей установкой php5 на этой неделе, чтобы работать odbc_pdo.: P

Кроме того, это не похоже на правильный вывод phpinfo(). Если вы создадите файл с содержимым <? phpinfo(); ?> и посетите эту страницу, вывод HTML должен содержать несколько разделов, в том числе один с загруженными модулями. (Отредактировано для добавления: как показано на скриншоте вышеприведенного ответа)

Ответ 3

Я использую IIS и mysql (непосредственно загружаемый, без wamp или xampp) Мой php был установлен в c:\php Я получал ошибку "вызов функции undefined mysql_connect()" Для меня работала переменная extension_dir. Это то, что я сделал. В php.ini, Первоначально, у меня была эта строка

; На окнах:  extension_dir = "ext"

Я изменил его на:

; На окнах:  extension_dir = "C:\php\ext"

И это сработало. Конечно, я сделал и другие вещи, такие как раскомментирование расширений dll и т.д., Как объяснялось в других замечаниях.