Start · Sprachen · PHP · Referenz · cubrid_get_query_timeout

cubrid_get_query_timeout

Funktion

Gibt das aktuell gesetzte Abfrage-Timeout (in Millisekunden) für einen CUBRID-Request-Handle zurück.

seit PHP 8.4.0 Kategorie: db

Signatur

cubrid_get_query_timeout(resource $req_identifier): int

Beschreibung

cubrid_get_query_timeout() liest den Timeout-Wert aus, der für eine bestimmte CUBRID-Datenbankabfrage (Request) festgelegt wurde. Der Wert wird in Millisekunden zurückgegeben. Ein Timeout von 0 bedeutet, dass kein Limit gesetzt ist.

Diese Funktion ist nützlich, wenn nach dem Setzen eines Timeouts via cubrid_set_query_timeout() überprüft werden soll, ob der gewünschte Wert korrekt übernommen wurde, oder wenn der aktuelle Stand vor einer dynamischen Anpassung ausgelesen werden soll.

Der Request-Handle ($req_identifier) wird in der Regel durch Funktionen wie cubrid_prepare() oder cubrid_execute() erzeugt. Der Handle muss gültig und aktiv sein, damit die Funktion korrekt arbeitet.

Parameter

Name Typ Default Beschreibung
$req_identifier Pflicht resource Ein gültiger CUBRID-Request-Handle, der zuvor z. B. mit cubrid_prepare() oder cubrid_execute() erzeugt wurde.

Rückgabewert

Typ
int
Beschreibung
Gibt den aktuellen Abfrage-Timeout-Wert in Millisekunden zurück. Der Wert 0 bedeutet, dass kein Timeout gesetzt ist (unbegrenzt). Im Fehlerfall wird false zurückgegeben.

Beispiele

Timeout auslesen und anzeigen

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
    die('Verbindung fehlgeschlagen');
}

$req = cubrid_prepare($conn, 'SELECT * FROM nation');
if (!$req) {
    die('Prepare fehlgeschlagen');
}

// Aktuellen Timeout auslesen (Standardwert)
$timeout = cubrid_get_query_timeout($req);
echo 'Aktueller Abfrage-Timeout: ' . $timeout . ' ms' . PHP_EOL;

cubrid_close_request($req);
cubrid_disconnect($conn);
?>
Aktueller Abfrage-Timeout: 0 ms

Timeout setzen und anschließend prüfen

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
    die('Verbindung fehlgeschlagen');
}

$req = cubrid_prepare($conn, 'SELECT * FROM athlete');
if (!$req) {
    die('Prepare fehlgeschlagen');
}

// Timeout auf 5000 ms (5 Sekunden) setzen
cubrid_set_query_timeout($req, 5000);

// Prüfen, ob der Wert korrekt gesetzt wurde
$timeout = cubrid_get_query_timeout($req);
if ($timeout === 5000) {
    echo 'Timeout korrekt gesetzt: ' . $timeout . ' ms' . PHP_EOL;
} else {
    echo 'Unerwarteter Timeout-Wert: ' . $timeout . ' ms' . PHP_EOL;
}

cubrid_close_request($req);
cubrid_disconnect($conn);
?>
Timeout korrekt gesetzt: 5000 ms

// Wichtig · Fallstricke

Hinweis: Diese Funktion ist nur verfügbar, wenn PHP mit der CUBRID-Erweiterung kompiliert wurde. Sie steht nicht in der Standard-PHP-Distribution zur Verfügung und muss als Erweiterung (php_cubrid.dll bzw. cubrid.so) eingebunden sein.

Ein Timeout-Wert von 0 bedeutet, dass Abfragen unbegrenzt lange laufen dürfen. In Produktionsumgebungen empfiehlt es sich, immer einen sinnvollen Timeout-Wert zu setzen, um hängende Abfragen und damit verbundene Ressourcenprobleme zu vermeiden.