Start · Sprachen · PHP · Referenz · sqlsrv_client_info

sqlsrv_client_info

Funktion

Gibt ein assoziatives Array mit Informationen über den SQLSRV-Client und die aktuelle Datenbankverbindung zurück.

seit PHP 1.0.0 Kategorie: db

Signatur

sqlsrv_client_info(resource $conn): array|false

Beschreibung

sqlsrv_client_info() liefert Metadaten über den verwendeten Microsoft SQL Server-Treiber (SQLSRV) sowie über die aktuelle Verbindung. Das zurückgegebene Array enthält Angaben zur Treiberversion, zum ODBC-Treiber und zur verwendeten PHP-SQLSRV-Erweiterungsversion.

Typische Felder im Rückgabe-Array sind: DriverDllName (Name der Treiber-DLL), DriverODBCVer (ODBC-Versionsnummer), DriverVer (Version des SQLSRV-Treibers) und ExtensionVer (Version der PHP-Erweiterung). Diese Informationen sind besonders nützlich bei der Fehlersuche, um sicherzustellen, dass Treiber- und Erweiterungsversionen kompatibel sind.

Die Funktion eignet sich hervorragend für Diagnose- und Debugging-Zwecke, etwa um in einer Support-Situation schnell die eingesetzte Treiberumgebung zu identifizieren oder um in Multiserver-Umgebungen sicherzustellen, dass überall dieselben Versionen im Einsatz sind.

Im Fehlerfall – etwa wenn die übergebene Verbindungsressource ungültig ist – gibt die Funktion false zurück. Fehlerinformationen lassen sich dann über sqlsrv_errors() abrufen.

Parameter

Name Typ Default Beschreibung
$conn Pflicht resource Eine gültige SQLSRV-Verbindungsressource, wie sie von sqlsrv_connect() zurückgegeben wird.

Rückgabewert

Typ
array|false
Beschreibung
Bei Erfolg ein assoziatives Array mit Client- und Verbindungsinformationen (u. a. DriverDllName, DriverODBCVer, DriverVer, ExtensionVer). Im Fehlerfall wird false zurückgegeben.

Beispiele

Client-Informationen 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));
}

$clientInfo = sqlsrv_client_info($conn);

if ($clientInfo === false) {
    echo 'Fehler beim Abrufen der Client-Informationen.';
    print_r(sqlsrv_errors());
} else {
    echo 'Treiber-DLL:       ' . $clientInfo['DriverDllName'] . PHP_EOL;
    echo 'ODBC-Version:      ' . $clientInfo['DriverODBCVer'] . PHP_EOL;
    echo 'Treiber-Version:   ' . $clientInfo['DriverVer'] . PHP_EOL;
    echo 'Erweiterungs-Ver.: ' . $clientInfo['ExtensionVer'] . PHP_EOL;
}

sqlsrv_close($conn);
Treiber-DLL: msodbcsql18.dll ODBC-Version: 03.80 Treiber-Version: 18.03.0001 Erweiterungs-Ver.: 5.11.0

Versionsprüfung vor dem Ausführen versionsspezifischer Funktionen

<?php
$conn = sqlsrv_connect('localhost', [
    'Database' => 'TestDB',
    'UID'      => 'sa',
    'PWD'      => 'geheimesPasswort',
]);

if ($conn === false) {
    die(print_r(sqlsrv_errors(), true));
}

$info = sqlsrv_client_info($conn);

// Mindest-Erweiterungsversion prüfen
$minVersion = '5.0.0';
if ($info !== false && version_compare($info['ExtensionVer'], $minVersion, '>=')) {
    echo 'Erweiterungsversion ist kompatibel: ' . $info['ExtensionVer'] . PHP_EOL;
} else {
    echo 'Veraltete SQLSRV-Erweiterung! Bitte auf mindestens v' . $minVersion . ' aktualisieren.' . PHP_EOL;
}

sqlsrv_close($conn);
Erweiterungsversion ist kompatibel: 5.11.0

// Wichtig · Fallstricke

Hinweis zur Plattform: Die SQLSRV-Erweiterung und damit sqlsrv_client_info() ist primär für Windows konzipiert. Unter Linux und macOS steht stattdessen die pdo_sqlsrv-Erweiterung in Kombination mit dem Microsoft ODBC Driver for SQL Server zur Verfügung, die jedoch äquivalente Diagnosemöglichkeiten bietet.

Fehlerbehebung: Gibt die Funktion false zurück, sollte mittels sqlsrv_errors() geprüft werden, ob die übergebene Verbindungsressource noch aktiv und gültig ist.