gpt4 book ai didi

mysql - 多数据库和事务

转载 作者:可可西里 更新时间:2023-11-01 07:46:00 25 4
gpt4 key购买 nike

如果我使用两个数据库,我必须开始交易?这是正确的,还是这段代码是错误的?如果我在第二个查询中出错,则调用 rollback(),但不幸的是不会回滚第一个查询...

 $conn_site=mysql_connect("localhost", "us", "ps");
mysql_select_db("site",$conn_site);
$conn_forum=mysql_connect("localhost", "us", "ps");
mysql_select_db("forum",$conn_forum);

function begin() {

@mysql_query("BEGIN",$conn_site);
@mysql_query("BEGIN",$conn_forum);
}
function commit_reg() {
@mysql_query("COMMIT",$conn_site);
@mysql_query("COMMIT",$conn_forum);
}
function rollback(){
@mysql_query("ROLLBACK",$conn_site);
@mysql_query("ROLLBACK",$conn_forum);
}
begin();
mysql_query("insert into users (....) or rollback();
mysql_query("insert into forumusers (....) or rollback();
commit();

最佳答案

mysql支持XA transactions ,它允许像 robert 建议的那样进行两步提交,但是是以更正式的方式。 PHP 接口(interface)不直接支持 XA 事务,因此您必须自己将事务命令作为语句发送。

关于mysql - 多数据库和事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2239810/

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