Start · Sprachen · PHP · Referenz · yaz_addinfo

yaz_addinfo

Funktion

Gibt zusätzliche Fehlerinformationen zur letzten YAZ-Operation zurück.

seit PHP 4.0.1 Kategorie: misc

Signatur

yaz_addinfo(resource $id): string

Beschreibung

yaz_addinfo() liefert einen erweiterten Fehlertext zur zuletzt fehlgeschlagenen YAZ-Operation auf einer gegebenen Verbindungsressource. Während yaz_error() nur eine kurze Fehlermeldung zurückgibt, enthält yaz_addinfo() oft detailliertere, serversspezifische Zusatzinformationen, die von Z39.50-Servern übermittelt werden.

Die Funktion ist besonders nützlich beim Debugging von Verbindungs- oder Suchanfrageproblemen mit Z39.50-Bibliothekssystemen. Viele Server senden zusammen mit einem Fehlercode einen zusätzlichen Beschreibungstext (Addinfo), der den eigentlichen Grund des Fehlers genauer beschreibt – zum Beispiel welches Suchfeld unbekannt ist oder welche Syntax nicht unterstützt wird.

Typischerweise wird yaz_addinfo() in Kombination mit yaz_errno() und yaz_error() eingesetzt, um eine vollständige Fehlerdiagnose zu ermöglichen. Ist kein Fehler aufgetreten oder stellt der Server keine Zusatzinformation bereit, wird ein leerer String zurückgegeben.

Parameter

Name Typ Default Beschreibung
$id Pflicht resource Die YAZ-Verbindungsressource, die von yaz_connect() zurückgegeben wurde.

Rückgabewert

Typ
string
Beschreibung
Gibt einen String mit zusätzlichen Fehlerinformationen des Z39.50-Servers zurück. Wenn keine Zusatzinformation verfügbar ist oder kein Fehler aufgetreten ist, wird ein leerer String zurückgegeben.

Beispiele

Fehlerdiagnose nach fehlgeschlagener Suche

<?php
$id = yaz_connect('z3950.example.com:210/Default');
if ($id) {
    yaz_syntax($id, 'usmarc');
    yaz_search($id, 'rpn', '@attr 1=4 "PHP"');
    yaz_wait();

    $errno = yaz_errno($id);
    if ($errno !== 0) {
        $error   = yaz_error($id);
        $addinfo = yaz_addinfo($id);
        echo "Fehlercode: " . $errno . "\n";
        echo "Fehlermeldung: " . $error . "\n";
        if ($addinfo !== '') {
            echo "Zusatzinfo: " . $addinfo . "\n";
        }
    } else {
        echo "Suche erfolgreich.\n";
    }
} else {
    echo "Verbindung fehlgeschlagen.\n";
}
Fehlercode: 114 Fehlermeldung: Unsupported Use attribute Zusatzinfo: 1=4

Hilfsfunktion zur vollständigen Fehlerausgabe

<?php
function yaz_diagnose(resource $id): string {
    $errno = yaz_errno($id);
    if ($errno === 0) {
        return 'Kein Fehler.';
    }
    $msg     = yaz_error($id);
    $addinfo = yaz_addinfo($id);
    $result  = "Fehler [{$errno}]: {$msg}";
    if ($addinfo !== '') {
        $result .= " (Details: {$addinfo})";
    }
    return $result;
}

// Beispielaufruf nach einer Operation:
// $id = yaz_connect(...);
// ...
// echo yaz_diagnose($id);

// Wichtig · Fallstricke

Hinweis zur PECL-Erweiterung: Die YAZ-Erweiterung ist nicht standardmäßig in PHP enthalten und muss über PECL installiert werden (pecl install yaz). Außerdem ist die native libyaz-Bibliothek erforderlich.

Deprecation: Die YAZ-Erweiterung wird seit längerem nicht mehr aktiv gepflegt und gilt in modernen PHP-Projekten als veraltet. Für neue Projekte mit Z39.50-Anbindung sollten alternative Bibliotheken in Betracht gezogen werden.

Die Zusatzinformation in yaz_addinfo() ist serverabhängig – nicht alle Z39.50-Server liefern detaillierte Addinfo-Strings. Daher sollte der Rückgabewert stets auf Leerstring geprüft werden, bevor er angezeigt wird.