【发布时间】:2011-06-15 00:03:07
【问题描述】:
我有一个代码用于我在回滚时遇到问题的应用程序中。即使我 's2' 返回错误的回滚也不会发生,即表 'products' 正在被删除。 谁能解释为什么它不起作用或我应该如何更改它。 注意:表是 Innodb 引擎的..我使用 mysql 5.0+
mysql_query('SET AUTOCOMMIT=0;');
mysql_query('START TRANSACTION;');
$sql = 'DROP TABLE '.$this->Product->tablePrefix.'products';
$s1 = mysql_query($sql);
$sql = 'RENAME TABLE '.$this->Product->tablePrefix.'temp12212 TO '.$this->Product->tablePrefix.'products';
$s2 =mysql_query($sql);
if($s1 && $s2){
mysql_query('COMMIT;');
$this->Session->setFlash('Commit Successful to Database');
}else{
mysql_query('ROLLBACK;');
$this->Session->setFlash('Commit failed due to some errors<br> auto-rollbacked to previous state');
}
【问题讨论】:
标签: php mysql transactions commit rollback