在数据库层对象中,我们总是使用通过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对应程序表现得更好。
发布于 2010-01-12 16:35:35
数据访问包装器可能需要知道事务何时启动/结束的原因。例如,在我的头脑中,连接池方案必须知道以前使用的连接何时在事务处理过程中结束,而不是将其返回到连接池,以便在这种情况下重新使用。
我不知道mysqli中有任何需要您使用本机方法而不是SQL版本的问题,但是在一般情况下.这就是为什么只有“有时应该”。在任何情况下,PHP方法都比SQL-string版本更容易阅读,所以无论如何,我都会这样说。
https://stackoverflow.com/questions/2050310
复制相似问题