Signatur
Beschreibung
sqlsrv_server_info() liefert Metadaten über den SQL-Server, mit dem eine aktive SQLSRV-Verbindung besteht. Das zurückgegebene Array enthält Angaben zur Serverversion, zum Servernamen sowie zum aktuell verwendeten Datenbanknamen.
Die Funktion ist nützlich, wenn zur Laufzeit geprüft werden muss, ob bestimmte SQL-Server-Features verfügbar sind (z. B. abhängig von der Version), oder wenn Diagnoseinformationen in Logs geschrieben werden sollen. Sie eignet sich auch für Deployments, bei denen mehrere Serverumgebungen (Entwicklung, Staging, Produktion) im Einsatz sind.
Das Rückgabe-Array enthält typischerweise die Schlüssel CurrentDatabase (aktuell genutzte Datenbank), SQLServerVersion (Versionsstring des Servers) und SQLServerName (Hostname oder Instanzname des Servers).
Im Fehlerfall – etwa bei einer ungültigen Verbindungsressource – gibt die Funktion false zurück. Fehlerdetails lassen sich dann über sqlsrv_errors() abrufen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $conn Pflicht | resource | Eine gültige SQLSRV-Verbindungsressource, die zuvor mit sqlsrv_connect() erstellt wurde. |
Rückgabewert
Gibt im Erfolgsfall ein assoziatives Array mit folgenden Schlüsseln zurück:
CurrentDatabase– Name der aktuell verwendeten Datenbank.SQLServerVersion– Versionsstring des SQL-Servers (z. B.15.00.4153).SQLServerName– Hostname oder benannte Instanz des Servers.
Bei einem Fehler wird false zurückgegeben.
Beispiele
Serverinformationen ausgeben
<?php
$serverName = "localhost";
$connectionOptions = [
"Database" => "TestDB",
"UID" => "sa",
"PWD" => "geheimesPasswort"
];
$conn = sqlsrv_connect($serverName, $connectionOptions);
if ($conn === false) {
die(print_r(sqlsrv_errors(), true));
}
$serverInfo = sqlsrv_server_info($conn);
if ($serverInfo !== false) {
echo "Aktueller Datenbankname: " . $serverInfo['CurrentDatabase'] . "\n";
echo "SQL-Server-Version: " . $serverInfo['SQLServerVersion'] . "\n";
echo "Servername: " . $serverInfo['SQLServerName'] . "\n";
} else {
print_r(sqlsrv_errors());
}
sqlsrv_close($conn);
?>
Versionsabhängige Logik ausführen
<?php
$conn = sqlsrv_connect("localhost", [
"Database" => "TestDB",
"UID" => "sa",
"PWD" => "geheimesPasswort"
]);
if ($conn === false) {
die(print_r(sqlsrv_errors(), true));
}
$info = sqlsrv_server_info($conn);
if ($info !== false) {
$version = (int) $info['SQLServerVersion'];
// SQL Server 2019 = Hauptversion 15
if ($version >= 15) {
echo "SQL Server 2019 oder neuer – JSON-Funktionen verfügbar.\n";
} else {
echo "Ältere SQL-Server-Version – eingeschränkte JSON-Unterstützung.\n";
}
}
sqlsrv_close($conn);
?>
// Wichtig · Fallstricke
Voraussetzung: Die SQLSRV-Erweiterung (ext/sqlsrv) muss installiert und aktiviert sein. Sie ist standardmäßig nicht in PHP enthalten und muss separat über PECL oder den Microsoft-Treiber für PHP bereitgestellt werden.
Verbindungszustand: Die Funktion liefert nur dann sinnvolle Ergebnisse, wenn die Verbindungsressource gültig und die Verbindung aktiv ist. Eine bereits geschlossene Verbindung führt zu false.
Versionsstring: Das Format von SQLServerVersion kann je nach Treiberversion variieren. Für zuverlässige Vergleiche empfiehlt es sich, version_compare() oder explizite Teilstring-Auswertungen zu nutzen.