Фатальная ошибка PHP: Вызов неопределенной функции 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? Я уверен, что это что-то действительно глупо, что я скучаю...

ПОЛНЫЙ 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 
Author: hakre, 2012-04-03

3 answers

Я только что попытался установить это расширение на свой сервер разработки.

Во-первых, убедитесь, что расширение правильно включено. Ваш вывод 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 при извлечении расширения.

 31
Author: F21, 2012-04-03 04:08:29

php.ini, вероятно, нужно прочитать: extension=ext\php_sqlsrv_53_nts.dll

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

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

 1
Author: Chris K, 2013-10-09 10:47:51

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

; В Windows: расширение_дир= "ext"

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

; В Windows: расширение_дир ="C:\php\ext "

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

 0
Author: M Shiraz Baig, 2014-07-19 09:15:10