Commit
In diesem Artikel konzentrieren wir uns auf die Funktion mysqli_commit() in PHP, die zum Bestätigen einer Transaktion in MySQL verwendet wird. Wir bieten Ihnen einen Überblick über die Funktion, ihre Funktionsweise und Beispiele für ihre Anwendung.
Einführung in die mysqli_commit()-Funktion
Die mysqli_commit()-Funktion ist eine integrierte prozedurale Funktion in PHP, die die aktuelle Transaktion für eine MySQL-Datenbankverbindung bestätigt. Dies ist nützlich, wenn Sie Änderungen, die an einer Datenbanktabelle vorgenommen wurden (z. B. Updates 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 (typischerweise durch Deaktivieren des Autocommit-Modus). Hier ist ein grundlegendes 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 vonmysqli_connect()zurückgegebene MySQLi-Verbindungsressource.$transaction(optional): Eine Zeichenfolge, die den Transaktionsnamen angibt (unterstützt in MySQL 8.0+).- Rückgabe:
truebei Erfolg,falsebei Fehler.
Erweiterte Verwendung
Die mysqli_commit()-Funktion kann Transaktionsnamen verarbeiten und wird häufig mit Fehlerbehandlungsmechanismen kombiniert, um die Datenintegrität zu gewährleisten. Wenn ein Commit fehlschlägt, sollten Sie die Transaktion typischerweise zurücksetzen (Rollback). Hier ist ein Beispiel, das eine 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 und die Datenbankkonsistenz sicherzustellen.
Fazit
Zusammenfassend lässt sich sagen, dass mysqli_commit() eine zuverlässige prozedurale Funktion zum Bestätigen von Transaktionen in MySQL innerhalb von PHP-Skripten ist. Durch das Verständnis ihrer Parameter, Rückgabewerte und der ordnungsgemäßen Fehlerbehandlung können Sie Datenbankänderungen sicher verwalten. Denken Sie daran, dass das objektorientierte Äquivalent $mysqli->commit() sich identisch verhält, jedoch als Methode auf einem MySQLi-Objekt aufgerufen wird.
Practice
Was bewirkt die mysqli_commit-Funktion in PHP?