Signatur
Beschreibung
cubrid_set_db_parameter() erlaubt es, bestimmte Datenbankparameter einer aktiven CUBRID-Verbindung zur Laufzeit zu ändern. Dies ist nützlich, um das Verhalten der Datenbankverbindung gezielt zu steuern, beispielsweise den Isolationsgrad von Transaktionen oder das Timeout-Verhalten.
Der zu setzende Parameter wird über den Integer-Wert $param_type angegeben. Folgende Konstanten stehen dafür zur Verfügung: CUBRID_PARAM_ISOLATION_LEVEL zum Festlegen des Transaktions-Isolationslevels und CUBRID_PARAM_LOCK_TIMEOUT zum Festlegen des Lock-Timeouts in Millisekunden.
Die Funktion ist besonders in Szenarien mit nebenläufigen Datenbankzugriffen relevant, wo präzise Steuerung von Sperren und Transaktionsisolation erforderlich ist, um Race Conditions oder Deadlocks zu vermeiden. Sie sollte direkt nach dem Aufbau der Verbindung aufgerufen werden, bevor Transaktionen gestartet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $conn_identifier Pflicht | resource | Die CUBRID-Verbindungsressource, die zuvor mit cubrid_connect() oder cubrid_connect_with_url() geöffnet wurde. |
|
| $param_type Pflicht | int | Der zu ändernde Parameter. Gültige Werte sind CUBRID_PARAM_ISOLATION_LEVEL und CUBRID_PARAM_LOCK_TIMEOUT. |
|
| $value Pflicht | int | Der neue Wert des Parameters. Für CUBRID_PARAM_ISOLATION_LEVEL ein Wert von 1 bis 6; für CUBRID_PARAM_LOCK_TIMEOUT ein Timeout-Wert in Millisekunden (oder -1 für unbegrenzt). |
Rückgabewert
true zurück, wenn der Parameter erfolgreich gesetzt wurde, oder false im Fehlerfall, z. B. bei ungültigem Parametertyp oder ungültigem Wert.Beispiele
Transaktions-Isolationslevel setzen
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
die('Verbindungsfehler: ' . cubrid_error());
}
// Isolationslevel auf 4 (REPEATABLE READ) setzen
$result = cubrid_set_db_parameter($conn, CUBRID_PARAM_ISOLATION_LEVEL, 4);
if ($result) {
echo "Isolationslevel erfolgreich gesetzt.\n";
} else {
echo "Fehler beim Setzen des Isolationslevels.\n";
}
cubrid_disconnect($conn);
?>
Lock-Timeout festlegen
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
die('Verbindungsfehler: ' . cubrid_error());
}
// Lock-Timeout auf 5000 Millisekunden (5 Sekunden) setzen
$result = cubrid_set_db_parameter($conn, CUBRID_PARAM_LOCK_TIMEOUT, 5000);
if ($result) {
echo "Lock-Timeout erfolgreich auf 5 Sekunden gesetzt.\n";
// Aktuellen Wert zur Kontrolle auslesen
$params = cubrid_get_db_parameter($conn);
echo "Aktueller Lock-Timeout: " . $params['LOCK_TIMEOUT'] . " ms\n";
} else {
echo "Fehler beim Setzen des Lock-Timeouts.\n";
}
cubrid_disconnect($conn);
?>
// Wichtig · Fallstricke
Hinweis: Die Funktion gilt nur für die Verbindungsressource, auf der sie aufgerufen wird, und hat keine Auswirkungen auf andere aktive Verbindungen. Parameteränderungen gelten sofort und wirken auf alle nachfolgenden Transaktionen dieser Verbindung.
Ungültige Werte für $param_type oder Werte außerhalb des gültigen Bereichs für $value führen dazu, dass die Funktion false zurückgibt. Zur Überprüfung der aktuellen Datenbankparameter kann cubrid_get_db_parameter() verwendet werden.