Start · Sprachen · PHP · Referenz · sqlsrv_server_info

sqlsrv_server_info

Funktion

Gibt ein assoziatives Array mit Informationen über den verbundenen Microsoft SQL Server zurück.

seit PHP 1.0.0 Kategorie: db

Signatur

sqlsrv_server_info(resource $conn): array|false

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

Typ
array|false
Beschreibung

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);
?>
Aktueller Datenbankname: TestDB SQL-Server-Version: 15.00.4153 Servername: localhost

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);
?>
SQL Server 2019 oder neuer – JSON-Funktionen verfügbar.

// 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.