Start · Sprachen · PHP · Referenz · cubrid_get_autocommit

cubrid_get_autocommit

Funktion

Gibt den aktuellen Autocommit-Modus einer CUBRID-Datenbankverbindung zurück.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_get_autocommit(resource $conn_identifier): bool

Beschreibung

cubrid_get_autocommit() ermittelt, ob der Autocommit-Modus für eine gegebene CUBRID-Verbindung aktiviert oder deaktiviert ist. Ist der Autocommit-Modus aktiv, wird jede SQL-Anweisung automatisch als eigenständige Transaktion behandelt und sofort in der Datenbank festgeschrieben.

Die Funktion ist besonders nützlich, um vor dem Beginn einer manuellen Transaktion den aktuellen Status zu prüfen oder nach einem Verbindungsaufbau sicherzustellen, dass der gewünschte Transaktionsmodus eingestellt ist. So lassen sich ungewollte implizite Commits vermeiden.

Um den Autocommit-Modus zu ändern, kann cubrid_set_autocommit() verwendet werden. Standardmäßig ist der Autocommit-Modus in CUBRID nach dem Verbindungsaufbau mit cubrid_connect() aktiviert.

Parameter

Name Typ Default Beschreibung
$conn_identifier Pflicht resource Die CUBRID-Verbindungsressource, die von cubrid_connect() oder cubrid_connect_with_url() zurückgegeben wurde.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn der Autocommit-Modus aktiviert ist, und false, wenn er deaktiviert ist. Bei einem Fehler (z. B. ungültige Verbindungsressource) wird ebenfalls false zurückgegeben.

Beispiele

Autocommit-Status einer Verbindung abfragen

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');

if (!$conn) {
    die('Verbindung fehlgeschlagen: ' . cubrid_error());
}

$autocommit = cubrid_get_autocommit($conn);

if ($autocommit) {
    echo 'Autocommit ist aktiviert.';
} else {
    echo 'Autocommit ist deaktiviert.';
}

cubrid_disconnect($conn);
?>
Autocommit ist aktiviert.

Autocommit-Modus prüfen und für manuelle Transaktion deaktivieren

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');

if (!$conn) {
    die('Verbindung fehlgeschlagen: ' . cubrid_error());
}

// Aktuellen Status prüfen
if (cubrid_get_autocommit($conn)) {
    // Autocommit deaktivieren, um manuelle Transaktionen zu nutzen
    cubrid_set_autocommit($conn, CUBRID_AUTOCOMMIT_FALSE);
    echo 'Autocommit wurde deaktiviert.' . PHP_EOL;
}

// Manuelle Transaktion durchführen
cubrid_query($conn, "INSERT INTO test_table (name) VALUES ('Beispiel')");

// Transaktion festschreiben
cubrid_commit($conn);
echo 'Transaktion erfolgreich festgeschrieben.' . PHP_EOL;

// Status nach dem Commit prüfen
$status = cubrid_get_autocommit($conn) ? 'aktiviert' : 'deaktiviert';
echo 'Autocommit ist nun: ' . $status . PHP_EOL;

cubrid_disconnect($conn);
?>
Autocommit wurde deaktiviert. Transaktion erfolgreich festgeschrieben. Autocommit ist nun: deaktiviert.

// Wichtig · Fallstricke

Hinweis: Standardmäßig ist der Autocommit-Modus nach dem Verbindungsaufbau aktiviert. Wenn mehrere SQL-Anweisungen atomar ausgeführt werden sollen (z. B. beim Übertragen von Bankbeträgen), muss Autocommit explizit mit cubrid_set_autocommit($conn, CUBRID_AUTOCOMMIT_FALSE) deaktiviert und die Transaktion manuell mit cubrid_commit() oder cubrid_rollback() beendet werden.

Die Funktion ist nur verfügbar, wenn die CUBRID-PHP-Erweiterung installiert und aktiviert ist. Sie ist nicht Teil der Standard-PHP-Distribution.