W3docs

commit

In diesem Artikel erklären wir die mysqli_commit()-Funktion in PHP, die zum Committen einer Transaktion in MySQL verwendet wird.

In diesem Artikel konzentrieren wir uns auf die mysqli_commit()-Funktion in PHP, die verwendet wird, um eine Transaktion in MySQL zu committen. Wir geben Ihnen einen Überblick über die Funktion, ihre Funktionsweise und Beispiele für deren Verwendung.

Einführung in die mysqli_commit()-Funktion

Die mysqli_commit()-Funktion ist eine eingebaute prozedurale Funktion in PHP, die die aktuelle Transaktion für eine MySQL-Datenbankverbindung committet. Dies ist nützlich, wenn Sie Änderungen, die an einer Datenbanktabelle vorgenommen wurden – wie Aktualisierungen oder Löschungen – innerhalb eines Transaktionsblocks dauerhaft speichern müssen. Beachten Sie, dass das objektorientierte Äquivalent die Methode $mysqli->commit() ist.

Verwendung der mysqli_commit()-Funktion

Die Verwendung von mysqli_commit() erfordert eine gültige MySQLi-Verbindung und eine gestartete Transaktion (üblicherweise durch Deaktivieren von Autocommit). Hier ist ein einfaches prozedurales Beispiel:

Grundlegende Verwendung von mysqli_commit()

<?php
$mysqli = mysqli_connect("localhost", "username", "password", "database");
if (!$mysqli) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    exit();
}

// Disable autocommit to start a transaction
mysqli_autocommit($mysqli, false);

// execute queries using the connection

// Commit the transaction
$result = mysqli_commit($mysqli);
if ($result) {
    echo "Transaction committed successfully.";
} else {
    echo "Transaction commit failed: " . mysqli_error($mysqli);
}

mysqli_close($mysqli);
?>

Parameter und Rückgabewert:

  • $mysqli: Die MySQLi-Verbindungsressource, die von mysqli_connect() zurückgegeben wird.
  • $transaction (optional): Ein string, der den Transaktionsnamen angibt (unterstützt in MySQL 8.0+).
  • Rückgabe: true bei Erfolg, false bei Fehler.

Erweiterte Verwendung

Die mysqli_commit()-Funktion kann Transaktionsnamen verarbeiten und wird häufig mit Fehlerbehandlung kombiniert, um die Datenintegrität sicherzustellen. Wenn ein Commit fehlschlägt, sollten Sie die Transaktion in der Regel zurückrollen. Hier ist ein Beispiel, das die ordnungsgemäße Fehlerbehandlung und den optionalen Transaktionsparameter demonstriert:

Erweiterte Verwendung von mysqli_commit()

<?php
$mysqli = mysqli_connect("localhost", "username", "password", "database");
if (!$mysqli) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    exit();
}

mysqli_autocommit($mysqli, false);

// execute queries using the connection

// Commit with an optional transaction name
$result = mysqli_commit($mysqli, "my_transaction");
if (!$result) {
    echo "Commit failed: " . mysqli_error($mysqli);
    // Roll back changes if commit fails
    mysqli_rollback($mysqli);
}

mysqli_close($mysqli);
?>

In diesem Beispiel deaktivieren wir Autocommit, führen Abfragen aus und versuchen, mit einem bestimmten Transaktionsnamen zu committen. Wenn mysqli_commit() false zurückgibt, fangen wir den Fehler ab und rufen mysqli_rollback() auf, um die Änderungen rückgängig zu machen, was die Datenbankkonsistenz gewährleistet.

Fazit

Zusammenfassend lässt sich sagen, dass mysqli_commit() eine zuverlässige prozedurale Funktion zum Committen von Transaktionen in MySQL innerhalb von PHP-Skripten ist. Durch das Verständnis ihrer Parameter, Rückgabewerte und der korrekten Fehlerbehandlung können Sie Datenbankänderungen sicher verwalten. Denken Sie daran, dass das objektorientierte Äquivalent $mysqli->commit() sich identisch verhält, aber als Methode auf einem MySQLi-Objekt aufgerufen wird.

Übungen

Übung
Was macht die mysqli_commit-Funktion in PHP?
Was macht die mysqli_commit-Funktion in PHP?
Was this page helpful?