2011-02-25 50 views
0

我正在將我的網站與論壇進行整合。所以基本上當用戶通過我的主網站註冊時,我必須在我的用戶表和論壇的用戶表中插入帳戶信息。 但是,有一個小小的機會,第一個查詢可能會失敗,從而使一個表空白的信息,而另一個表。在兩張表中插入信息,並在PHP中使用一個mysql查詢

如果我可以插入一個查詢兩個表中的信息,應該失敗什麼都不會被添加到數據庫

回答

2

上交易閱讀起來。你想START TRANSACTION,做兩個插件,以及COMMIT

+0

在MySQL中(可能mysqli的爲好)提供的交易,什麼都在使用它的壞點?它是否支持auto_increment? – dikidera 2011-02-25 00:12:25

+0

yes確實如此:http://dev.mysql.com/doc/refman/5.0/en/commit.html – Stofke 2011-02-25 00:14:17

+0

是的,交易和自動遞增都可用。 – Satya 2011-02-25 23:01:58

1

數據庫知道交易此類問題的概念。

您在事務中封裝了多個數據庫語句,並且所有語句都成功或者所有操作都回滾到之前的狀態。

PHP和mysqli的,你可以做這樣的事情:

$conn = new mysqli("localhost", "my_user", "my_password", "my_db"); 

// turn off autocommit = beginn a transaction 
$conn->autocommit(false); 

// your db actions: multiple inserts ... what you want 
$mysqli->query("insert into table1...."); 
$mysqli->query("insert into table2...."); 

// commit all changes and close connection 
$conn->commit(); 
$conn->close(); 
相關問題