Signatur
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
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-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);
?>
// 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.