事務操作
使用事務處理的話,需要數據庫引擎支持事務處理。比如 MySQL
的 MyISAM
不支持事務處理,需要使用 InnoDB
引擎。
手動控制事務邏輯,如:
<?php
try {
// 啟動事務
FastDb::getInstance()->begin();
$user = User::findRecord(1000);
$user->delete();
// 提交事務
FastDb::getInstance()->commit();
} catch (\Throwable $throwable) {
// 回滾事務
FastDb::getInstance()->rollback();
}
// 或者使用 `invoke` 方法
FastDb::getInstance()->invoke(function (\EasySwoole\FastDb\Mysql\Connection $connection) {
try {
// 啟動事務
FastDb::getInstance()->begin($connection);
$user = User::findRecord(1000);
$user->delete();
// 提交事務
FastDb::getInstance()->commit($connection);
} catch (\Throwable $throwable) {
// 回滾事務
FastDb::getInstance()->rollback($connection);
}
return true;
});