Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

PHP IIS7 MSSQL Извикване на недефинирана функция sqlsrv_connect

Аз самият имах този проблем. Най-накрая го поправих, така че реших да споделя.

Проблемът беше, че въпреки че имах инсталиран sqlsrv dll (копиран в моята папка php/ext), и Добавих го в моя php.ini, в IIS беше „деактивиран“ .

Ето някои инструкции стъпка по стъпка, в случай че някой отново има същия проблем. (Или за бъдеща справка за мен :))

  1. Изтеглете (и инсталирайте) драйверите на SQL Server (.dll)

    • Инсталирайте ги, като стартирате .exe и напишете пътя до вашата папка с php разширения, когато ви попита къде да ги декомпресирате.
      • За да намерите текущата си директория с разширения, изпълнете (cmd.exe) php -i | more и потърсете реда extension_dir . (За мен беше при четвъртото натискане на more ). Алтернативно, направете прост php файл, съдържащ само <?php phpinfo(); ?> и го стартирайте в браузъра. Това ще даде същата информация, но в много по-лесен за четене формат.
  2. Добавете разширението към вашия php.ini

    • За да намерите правилния php.ini, изпълнете php -i | more отново, търсейки Loaded Configuration File , или проверете отново този прост php скрипт (силно препоръчвам да го направите - ще ви спести време и усилия). Пътят, който намирате там, е файлът, който трябва да редактирате.
    • Добавете следните редове към вашия php.ini и го запазете:

      [PHP_SQLSRV] extention=php_sqlsrv_56_nts.dll

  3. Активирайте разширението в IIS Manager

    • В стартовото меню въведете IIS Manager и натиснете enter.
    • Щракнете върху името на вашия сървър в лявата странична лента
    • Щракнете върху PHP Manager
    • Под PHP Extensions , щракнете върху Enable or Disable an Extension .
    • Ако разширението ви не е под Enabled , погледнете под Disabled за него. Когато го намерите, щракнете с десния бутон върху него и щракнете върху Enable в контекстното меню, което се появява.
  4. Тествайте, за да се уверите, че работи

    • Отворете този phpinfo() страница, която сте направили (направихте, нали?), и погледнете под Registered PHP Streams . Ако видите sqlsrv в този списък сте готови!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразуването в дата и час е неуспешно само при клаузата WHERE?

  2. SQL игнорира част от WHERE, ако параметърът е нула

  3. Изберете редове, които не са в друга таблица, заявка на SQL Server

  4. Таблицата не може да се съкрати, защото се препраща от ограничение ВЪНШЕН КЛЮЧ - SQL Server / TSQL Урок, част 70

  5. DATEDIFF_BIG() Примери в SQL Server