2010年3月5日 星期五

PHP 對 MYSQL 交易(Transaction)

MYSQL 中只有 INNODB 和 BDB 類型的資料表才能執行交易處理!一般 MYSQL 資料庫預設的引擎是 MyISAM,這種引擎不能執行交易!如果要讓 MYSQL 執行交易,可以自己手動修改:

方法如下(Windows):
1.修改 c:\appserv\mysql \my.ini 文件,找到 skip-InnoDB ,在前面加上#,後存檔。
2.在執行中輸入:services.msc,重啟 mysql服務。
3.到 phpmyadmin 中,mysql->show engines;(或執行mysql->show variables like 'have_%'; ),查看 InnoDB 為 YES,即表示資料庫執行 InnoDB 了。也就說明能執行交易 Transaction 了。
4.在建資料表時,就可以為S torage Engine 選擇 InnoDB 引擎了。如果是以前建的,可以使用 mysql->alter table table_name type=InnoDB; 或 mysql->alter table table_name engine=InnoDB; 來改變資料表的引擎。

MySQL 預設都會啟動 Auto Commit, 要在 InnoDB 做 Transaction 有分兩種方法:
1. begin 直到 commit, rollback 結束
2. set autocommit=0 直到 set autocommit=1 結束

沒有留言:

張貼留言