gpt4 book ai didi

PHP 和 MySQL : Running transactions yourself?

转载 作者:行者123 更新时间:2023-11-29 09:11:56 26 4
gpt4 key购买 nike

在 MySQL 中使用事务的想法很好。如果出现问题能够回滚事务的想法也很好。

我的问题是:在应用程序中,是否值得自己控制事务,还是让 MySQL 为我处理?换句话说,应该对 MySQL 提供的自动提交功能抱有积极的不信任吗?

示例:

try 
{
$mysqli->autocommit( 0 );
//Normally, would go through the steps of prepping and executing etc,
//but I'll use this for brevity.
if( !$mysqli->query( ".." ) )
throw new Exception( ".." );
$mysqli->commit( )
}
catch( Exception $e )
{
$mysqli->rollback( ); //Doing this so I make sure I get my rollback
error_log( ".." );
}

而不是让自动提交功能完成它自己方便的工作。

注意:我正在编写的应用程序仅设置为一次运行一个查询,在任何情况下(例如在某些(大多数)银行和其他金融应用程序中)我都需要确保两个查询更改数据的查询成功。

这主要是因为想要控制这类东西(以及自动提交功能中的某些缺乏)。

最佳答案

答案通常是:这取决于情况。如果您想确保

update(x);
update(y);

是原子的,即更新或都不执行,您应该关闭自动提交。如果您只执行一项查询,则无需自己控制事务。如果您唯一的事务失败,就没有什么可以回滚的,对吗?

相关说明:您可能想阅读 ACID properties交易数量。

关于PHP 和 MySQL : Running transactions yourself?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5333183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com