MySQL provides three transaction-safe tables including Berkeley_DB, GEMINI and InnoDB Tables, I have some queries on them: 1. What are the differences between these three type of transaction-safe table types? 2. Which type should be used for the E-Commerce web site? 3. Is true that BDB is free while the other two are not free? 4. In MySQL, we can use transaction as the following: BEGIN; SELECT @A:=SUM(salary) FROM table1 WHERE type=1; UPDATE table2 SET summmary=@A WHERE type=1; COMMIT; (or ROLLBACK) but how to apply it in the E-Commerce web site with PHP programming? Thank you very much!