mySQL-使用PHP设置隔离级别';s mysqli
如何使用mysqli在PHP中将事务的隔离级别设置为“可序列化”?我到处找了,找不到任何有关它的信息mySQL-使用PHP设置隔离级别';s mysqli,php,mysql,transactions,innodb,isolation-level,Php,Mysql,Transactions,Innodb,Isolation Level,如何使用mysqli在PHP中将事务的隔离级别设置为“可序列化”?我到处找了,找不到任何有关它的信息 是对隔离级别的解释。您可以在运行语句之前在查询中设置隔离级别。这假设您使用同一个会话执行所有操作: $mysqli = new mysqli('localhost', 'user', 'pass', 'db'); $mysqli->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE"); ... 您可能还想在手前关机,因
是对隔离级别的解释。您可以在运行语句之前在查询中设置隔离级别。这假设您使用同一个会话执行所有操作:
$mysqli = new mysqli('localhost', 'user', 'pass', 'db');
$mysqli->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE");
...
您可能还想在手前关机,因为它会改变方式。简短回答:
$mysqli = new mysqli('localhost', 'user', 'pass', 'db');
$mysqli->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE");
详细回答:除非使用会话或全局修饰符,否则设置事务级别将仅适用于下一个查询
tldr
根据MySQL和InnoDB表:
没有任何会话或全局关键字:
该语句仅适用于执行的下一个单个事务
在会议期间
后续事务将恢复为使用指定事务的会话值
特点
交易中不允许使用该声明
请注意,设置
GLOBAL
标志将影响所有后续查询,现有会话将不受影响。是否有更多关于“您可能还想先关闭自动提交,因为它会改变可序列化隔离的工作方式”的信息。注释?