gpt4 book ai didi

php - PDO、mysql、事务和表锁定

转载 作者:IT老高 更新时间:2023-10-29 00:07:34 24 4
gpt4 key购买 nike

为了好玩,我将应用程序中的 mysqli 扩展替换为 PDO。

偶尔我需要使用事务+表锁定。

在这些情况下,根据 mysql 手册,语法需要有点不同。而不是调用 START TRANSACTION,你这样做......

SET autocommit=0;
LOCK TABLES t1 WRITE, t2 READ, ...;
... do something with tables t1 and t2 here ...
COMMIT;
UNLOCK TABLES;

( http://dev.mysql.com/doc/refman/5.0/en/lock-tables-and-transactions.html )

我的问题是,这如何与 PDO::beginTransaction 交互?在这种情况下我可以使用 PDO::beginTransaction 吗?或者我应该手动发送 sql "SET autocommit = 0; ... etc"。

谢谢你的建议,

最佳答案

当您调用 PDO::beginTransaction() 时,它会关闭自动提交。

所以你可以这样做:

$db->beginTransaction();
$db->exec('LOCK TABLES t1, t2, ...');
# do something with tables
$db->commit();
$db->exec('UNLOCK TABLES');

在 commit() 或 rollBack() 之后,数据库将回到自动提交模式。

关于php - PDO、mysql、事务和表锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3106737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com