Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 有没有办法在MySQL中获取autocommit的默认值?_Php_Mysql_Mysqli_Transactions_Autocommit - Fatal编程技术网

Php 有没有办法在MySQL中获取autocommit的默认值?

Php 有没有办法在MySQL中获取autocommit的默认值?,php,mysql,mysqli,transactions,autocommit,Php,Mysql,Mysqli,Transactions,Autocommit,我只是想知道根据标题,这是否可以做到?例如,如果我要做这样的事情: $this->db->autocommit(false); 但后来我想把它设置回默认值;我不能假设它默认为true,然后这样做: $this->db->autocommit(true); 如果可能的话,我想把它重置回默认值;或者其他人在希望一个查询自动提交时会怎么做?你经常跑步吗 $this->db->autocommit(true); …在查询之前,确保自动提交处于启用状态? 确定它是

我只是想知道根据标题,这是否可以做到?例如,如果我要做这样的事情:

$this->db->autocommit(false);
但后来我想把它设置回默认值;我不能假设它默认为true,然后这样做:

$this->db->autocommit(true);
如果可能的话,我想把它重置回默认值;或者其他人在希望一个查询自动提交时会怎么做?你经常跑步吗

$this->db->autocommit(true);
…在查询之前,确保
自动提交
处于启用状态?

确定它是否打开,如果不打开,似乎很愚蠢

另一种方法是使用:

SHOW VARIABLES WHERE Variable_name='autocommit';

其他变量中的自动提交也是基于每个连接的,将自动提交设置为true不会影响任何其他连接。找到默认值的唯一方法是在建立连接时(更改状态之前)检查右键。

我不想获取当前状态,我想获取默认值。在我看来,最好的做法是在更改后将某些内容恢复到正常状态,否则每次运行查询时都必须打开/关闭它,以确保它符合您的要求。更新了更多信息。谢谢。是的,我知道这是基于每个连接的,但是我想如果你在一个地方把它改成false,然后在另一个地方把它改成false,代码假定为默认值,那么你可能会遇到问题。。。。。也许最好的方法就是总是在所有相关查询之前设置它!?是的,这是最简单的方法,不过如果你想非常安全,你可以在换衣服之前跟踪它是什么,然后再换回来。这样,无论周围的代码期望它是什么,它都会是。“显示变量”在最近的mysql版本(>5.6.x)上不起作用,所以“选择@@autocommit”是唯一的方法。为了与backword兼容,我使用“选择@@autocommit作为值”,这样无论mysql的版本如何,我都可以读取字段“Value”。
SHOW VARIABLES WHERE Variable_name='autocommit';