Неустранимая ошибка PHP: вызов неопределенной функции mssql_connect () - PullRequest
17 голосов
/ 03 апреля 2012

Я никогда раньше не использовал 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 

Ответы [ 3 ]

31 голосов
/ 03 апреля 2012

Я только что попытался установить это расширение на моем 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 при извлечении расширения.

1 голос
/ 03 апреля 2012

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

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

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

0 голосов
/ 19 июля 2014

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

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

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

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

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

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