PHP中的mysql_rollback()函数有什么用?

时间:2010-05-03 09:00:02

标签: php mysql

PHP中mysql_rollback()函数的用途是什么?

如何使用? 请用一些例子解释我,

PS:请不要给我链接到php.net或者mysql网站,我不需要AUTHOR语言来理解它,我需要开发者的方式来理解... 我希望你明白......

提前致谢。

  

更新

如果我在表中更新了某些内容,我可以使用此函数重置以前的值吗?

4 个答案:

答案 0 :(得分:4)

如果要同时执行多个语句,可以在MySQL中使用事务。您发送BEGIN以启动事务,然后为您要执行的语句发送mysql_query - s。如果您现在发送COMMIT,则会执行这些语句,如果您发送ROLLBACK,则会被取消而不会产生任何影响。因此,对于您的其他问题:ROLLBACK将中止您之前发送的查询并恢复为数据库中的旧值。但是,一旦提交,您就不能再回滚,因为事务完成了。

答案 1 :(得分:1)

这会发出一个ROLLBACK语句,它会回滚当前事务。

答案 2 :(得分:1)

mysql_rollback()回滚当前交易。我不熟悉交易,我会建议一些Wikipedia阅读。这是一个非常有用的概念。

答案 3 :(得分:1)

事务是一种确保ALL语句成功或不执行任何操作的方法。

例如,要将资金从Bob的银行帐户转移到Alice,可以这样做:

更新帐户SET金额=金额 - 100 WHERE name ='Bob'; 更新帐户SET金额=金额+ 100 WHERE name ='Alice';

但是想象一下在第一个语句之后出现问题(服务器崩溃,因为电源耗尽)。银行现在从鲍勃那里扣了100美元,但爱丽丝一无所获!

为避免这种情况,我们使用交易。正如Etan解释的那样:你首先是BEGIN,然后你执行所有的陈述。如果一切顺利,你然后COMMIT。只有这样才能保存修改。

如果出现问题(例如,没有Alice的帐号),您可以回滚,或者如果出现严重错误(即电源关闭),服务器将回滚。

回答您的更新 如果您已经在表中更新了某些内容,则只有在以BEGIN开头并且尚未进行COMMIT时才可以使用此函数重置以前的值,是的。