rollback
تابع rollback در MySQLi تراکنش (Transaction) را برمی گرداند. یعنی اگر وسط کار اشتباه شد، تغییرات ذخیره شده را لغو می کنی. مثل وقتی تکلیف را خراب نوشتی و با Ctrl+Z برمی گردی.
تعریف کوتاه و کاربرد
طبق منبع، rollback() تراکنش جاری همان اتصال را برمی گرداند. همچنین اشاره شده به commit برای نهایی کردن تغییرات و autocommit برای روشن/خاموش کردن ذخیره خودکار.
نمونه کد (سبک شیءگرا)
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
exit();
}
$mysqli->autocommit(false);
$mysqli->query("INSERT INTO Persons (FirstName, LastName, Age) VALUES ('Peter', 'Griffin', 35)");
$mysqli->query("INSERT INTO Persons (FirstName, LastName, Age) VALUES ('Glenn', 'Quagmire', 33)");
if (!$mysqli->commit()) {
echo "Commit transaction failed";
exit();
}
$mysqli->rollback();
$mysqli->close();
?>
نحو و پارامترها
نحو شیءگرا: $mysqli->rollback(flags, name). نحو رویه ای: mysqli_rollback(connection, flags, name). پارامتر flags می تواند پسوندهایی مانند AND CHAIN یا RELEASE اضافه کند. پارامتر name نامی برای ROLLBACK/*name*/ است.
گام های عملی سریع
- اتصال بساز و خطا را چک کن.
- autocommit را خاموش کن.
- چند کوئری اجرا کن.
- commit یا rollback را فراخوانی کن.
نکته: اگر می خواهی تغییرات ذخیره شوند، از commit استفاده کن. اگر تست می کنی یا خطا شد، از rollback کمک بگیر.
جمع بندی سریع
- rollback تراکنش جاری را برمی گرداند.
- با autocommit=false مؤثرتر است.
- پارامترهای flags و name اختیاری اند.
- برای نهایی سازی از commit استفاده کن.