数据库
首页 > 数据库> > PHP mysqli :: autocommit VS“开始交易”

PHP mysqli :: autocommit VS“开始交易”

作者:互联网

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

今天进行了一些研究,发现this mention in the MySQL Manual关于使用API​​级调用来使用直接SQL管理事务VS:

Important

Many APIs used for writing MySQL
client applications (such as JDBC)
provide their own methods for starting
transactions that can (and sometimes
should) be used instead of sending a
START TRANSACTION statement from the
client. See Chapter 20, Connectors and
APIs, or the documentation for your
API, for more information.

并且,在仔细查看mysqli时,发现了用于管理事务的mysqli :: autocommit,mysqli :: rollback和mysqli :: commit方法(http://us.php.net/manual/en/class.mysqli.php).

我的问题:使用这些mysqli等效项更好,为什么?我无法在任何地方提及这些功能是否比其直接的SQL同类产品更好的原因.

解决方法:

可能有某些原因可能导致数据访问包装器需要知道何时开始/结束事务.例如,在我的脑海中,连接池方案必须知道在事务中间何时完成了先前使用的连接,并且在这种情况下不能将其返回给连接池以供重用.

我不知道mysqli中会要求您使用本机方法而不是SQL版本的任何问题,但是在一般情况下……这就是为什么它只是“有时应该”的原因.无论如何,PHP方法比SQL字符串版本更易于阅读,因此无论如何我都会说.

标签:mysqli,transactions,database-connection,mysql,php
来源: https://codeday.me/bug/20191024/1919257.html