To secure your database from inconsistencies resulting from failing (complex) operations, you (should) use transactions.
However, complex methods often rely on other complex methods that themselves build on transactions.
This HowTo presents a method to nest or embed transactions without relying on the database's nesting capabilities.
The problem is not new: after setting some filters in a grid (typically in admin view), and gone to another page, returning in the grid's page I would like to find the filters with previous setting mantained.
Update: This wiki has been rewritten to be in line with Yii 1.1.14. Since many of the detailed complexities are now handled by Yii, the article focuses on how the crypt() built-in function works and why it's important to use it correctly.