Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

PHP IIS7 MSSQL Aufruf der undefinierten Funktion sqlsrv_connect

Ich hatte dieses Problem gerade selbst. Ich habe es endlich repariert, also dachte ich, ich teile es.

Das Problem war, dass, obwohl ich die sqlsrv-DLL installiert hatte (in meinen php/ext-Ordner kopiert), und Ich hatte es in meiner php.ini hinzugefügt, in IIS war es 'deaktiviert' .

Hier ist eine Schritt-für-Schritt-Anleitung, falls jemand dasselbe Problem wieder hat. (Oder als zukünftige Referenz für mich :))

  1. Laden Sie die SQL Server-Treiber herunter (und installieren Sie sie) (.dll)

    • Installieren Sie sie, indem Sie die .exe-Datei ausführen und den Pfad zu Ihrem PHP-Erweiterungsordner eingeben, wenn Sie gefragt werden, wo sie dekomprimiert werden sollen.
      • Um Ihr aktuelles Erweiterungsverzeichnis zu finden, führen Sie (cmd.exe) php -i | more , und suchen Sie nach der Zeile extension_dir . (Bei mir war es beim vierten Drücken von more ). Erstellen Sie alternativ eine einfache PHP-Datei, die nur <?php phpinfo(); ?> , und führen Sie es im Browser aus. Dadurch erhalten Sie dieselben Informationen, jedoch in einem viel einfacher zu lesenden Format.
  2. Fügen Sie die Erweiterung zu Ihrer php.ini

    hinzu
    • Um die richtige php.ini zu finden, führen Sie entweder php -i | more Suchen Sie erneut nach Loaded Configuration File , oder überprüfen Sie dieses einfache PHP-Skript erneut (ich empfehle Ihnen dringend, es zu erstellen - es spart Ihnen Zeit und Mühe). Der Pfad, den Sie dort finden, ist die Datei, die Sie bearbeiten müssen.
    • Fügen Sie Ihrer php.ini die folgenden Zeilen hinzu und speichern Sie sie:

      [PHP_SQLSRV] extention=php_sqlsrv_56_nts.dll

  3. Aktivieren Sie die Erweiterung im IIS-Manager

    • Geben Sie im Startmenü IIS Manager ein , und drücken Sie die Eingabetaste.
    • Klicken Sie in der linken Seitenleiste auf den Namen Ihres Servers
    • Klicken Sie auf PHP Manager
    • Unter PHP Extensions , klicken Sie auf Enable or Disable an Extension .
    • Falls Ihre Erweiterung nicht unter Enabled ist , sehen Sie unter Disabled nach dafür. Wenn Sie es finden, klicken Sie mit der rechten Maustaste darauf und klicken Sie auf Enable im erscheinenden Kontextmenü.
  4. Testen Sie, ob es funktioniert hat

    • Öffne dieses phpinfo() Seite, die Sie erstellt haben (haben Sie, nicht wahr?), und schauen Sie unter Registered PHP Streams nach . Wenn Sie sqlsrv sehen in dieser Liste sind Sie fertig!