Если я использую две базы данных, мне нужно начать транзакцию? Это правильно, или этот код неправильный? Если я делаю ошибку во втором запросе, а затем вызвать откат(), но, к сожалению, не будет откатить первый запрос ...Несколько баз данных и транзакций
$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();
правильный с длинным голосом ответ. – 2010-02-11 07:19:59