首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP::autocommit VS "START TRANSACTION“

PHP::autocommit VS "START TRANSACTION“
EN

Stack Overflow用户
提问于 2010-01-12 16:07:30
回答 1查看 5.4K关注 0票数 3

在数据库层对象中,我们总是使用通过mysqli::query执行的"START TRANSACTION“、"ROLLBACK”和"COMMIT“SQL语句来管理事务。

在今天进行一些研究时,我发现了关于使用API级调用来管理事务的“MySQL手册”中提到了这一点,而不是使用直接的SQL:

重要 许多用于编写MySQL客户端应用程序(如JDBC)的API提供了它们自己的启动事务的方法,这些方法可以(有时也应该)使用,而不是从客户机发送开始事务语句。有关更多信息,请参见第20章连接器和API,或API的文档。

仔细看一下mysqli,就会发现mysqli::autocommit、mysqli::rollback和mysqli::commit管理事务(http://us.php.net/manual/en/class.mysqli.php)的方法。

我的问题是:使用这些mysqli等价物更好吗?为什么?我发现任何地方都没有提到这些函数是否或为什么比直接的SQL对应程序表现得更好。

EN

回答 1

Stack Overflow用户

发布于 2010-01-12 16:35:35

数据访问包装器可能需要知道事务何时启动/结束的原因。例如,在我的头脑中,连接池方案必须知道以前使用的连接何时在事务处理过程中结束,而不是将其返回到连接池,以便在这种情况下重新使用。

我不知道mysqli中有任何需要您使用本机方法而不是SQL版本的问题,但是在一般情况下.这就是为什么只有“有时应该”。在任何情况下,PHP方法都比SQL-string版本更容易阅读,所以无论如何,我都会这样说。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2050310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档