技術メモ

技術メモ

Fuelでトランザクションを張る

FuelPHPで、複数のDBに対してトランザクションを張りたい。

<?phptry {
	$conn = Database_Connection::instance('engine_db');
	$conn_default = Database_Connection::instance('default');

	$conn->start_transaction();
	$conn_default->start_transaction();

	// sql

	$conn->commit_transaction();
	$conn_default->commit_transaction();
} catch (Database_Exception $e) {
	isset($conn) and $conn->rollback_transaction();
	isset($conn_default) and $conn_default->rollback_transaction();
	Log::error($e->getMessage());
}