If i use two database, i have to start to transaction? Is this correct, or this code is wrong? If i make a mistake in the second query, then call rollback(), but unfortunately won't roll back the first query...
$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();
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…