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 и т.д., Как объяснялось в других замечаниях.