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:
-
Ordner der PHP-Installation finden (bei mir war es „C:\Program Files (x86)\IIS Express\PHP\v7.3“)
-
Ermitteln, ob „php.exe“ 32-Bit oder 64-Bit ist. Ich habe das mit „sigcheck“ von SysInternals gemacht
-
Dateien von Microsofts GitHub-Seite downloaden, entsprechend 32-Bit oder 64-Bit
-
Download-ZIP entsprerren
-
Ordner von „php.ini“-Datei finden
-
Die 4 DLLs aus dem Microsoft-Download in den Unterordner „ext“ kopieren
-
„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
-
Eventuell den Webserver neu starten (bei mir war es ein Testprojekt in Visual Studio, also habe ich das zur Sicherheit neu gestartet)