Fehlermeldung "Could not find driver" beim Zugriff auf SQL Server von PHP aus

Beim Zugriff via PDO von PHP aus auf einen SQL Server bekam ich folgende Fehlermeldung:

Could not find driver

Die direkte Google-Suche führte mich erst einmal auf diese Microsoft-Download-Seite. Die dort heruntergeladenen Dateien haben bei mir nicht funktioniert.

Stattdessen bin ich auf diese Seite gestoßen:

Damit konnte ich dann erfolgreich von PHP aus via diesem Connection-String auf eine Datenbank in einer SQL-Server-Instanz zugreifen:

"sqlsrv:Server=$ServerName;Database=$Database"

Das Vorgehen war:

  1. Ordner der PHP-Installation finden (bei mir war es „C:\Program Files (x86)\IIS Express\PHP\v7.3“)

  2. Ermitteln, ob „php.exe“ 32-Bit oder 64-Bit ist. Ich habe das mit „sigcheck“ von SysInternals gemacht

  3. Dateien von Microsofts GitHub-Seite downloaden, entsprechend 32-Bit oder 64-Bit

  4. Download-ZIP entsprerren

  5. Ordner von „php.ini“-Datei finden

  6. Die 4 DLLs aus dem Microsoft-Download in den Unterordner „ext“ kopieren

  7. „php.ini“-Datei um die Einträge zu den Microsoft-Treiber-DLLs ergänzen. Ich habe mich spontan für die „NTS“-Version entschieden (nicht-threadsicher), das hat geklappt. Angeblich immer NTS wählen, wenn PHP in IIS Express läuft

    [ExtensionList]
    extension=php_sqlsrv_73_nts.dll
    extension=php_pdo_sqlsrv_73_nts.dll
    
  8. Eventuell den Webserver neu starten (bei mir war es ein Testprojekt in Visual Studio, also habe ich das zur Sicherheit neu gestartet)