PHP+MySQL事務(wù)示例我真的沒有找到使用MySQL事務(wù)的PHP文件的正常示例。你能給我舉個(gè)簡單的例子嗎?還有一個(gè)問題。我已經(jīng)做了很多編程并且不使用事務(wù)。我能把一個(gè)PHP函數(shù)或者什么東西放進(jìn)去嗎?header.php如果一個(gè)mysql_query失敗了,那么其他人也失敗了?我想我已經(jīng)搞清楚了,對嗎?mysql_query("SET AUTOCOMMIT=0");mysql_query("START TRANSACTION");$a1 = mysql_query("INSERT INTO rarara (l_id) VALUES('1')");
$a2 = mysql_query("INSERT INTO rarara (l_id) VALUES('2')");if ($a1 and $a2) {
mysql_query("COMMIT");} else {
mysql_query("ROLLBACK");}
3 回答

慕田峪9158850
TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
try { // First of all, let's begin a transaction $db->beginTransaction(); // A set of queries; if one fails, an exception should be thrown $db->query('first query'); $db->query('second query'); $db->query('third query'); // If we arrive here, it means that no exception was thrown // i.e. no query has failed, and we can commit the transaction $db->commit();} catch (Exception $e) { // An exception has been thrown // We must rollback the transaction $db->rollback();}
PDO可以這樣做,這取決于您如何配置它。 看見 和 PDO::ATTR_ERRMODE
和 PDO::ERRMODE_EXCEPTION
否則,使用其他API,您可能需要測試用于執(zhí)行查詢的函數(shù)的結(jié)果,并親自拋出異常。
begin
)commit
rollback
)

Cats萌萌
TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
mysql_query("START TRANSACTION");$a1 = mysql_query("INSERT INTO rarara (l_id) VALUES('1')"); $a2 = mysql_query("INSERT INTO rarara (l_id) VALUES('2')");if ($a1 and $a2) { mysql_query("COMMIT");} else { mysql_query("ROLLBACK");}

炎炎設(shè)計(jì)
TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
<?php// trans.phpfunction begin(){ mysql_query("BEGIN");}function commit(){ mysql_query("COMMIT");}function rollback(){ mysql_query("ROLLBACK");}mysql_connect("localhost","Dude1", "SuperSecret") or die(mysql_error()); mysql_select_db("bedrock") or die(mysql_error()); $query = "INSERT INTO employee (ssn,name,phone) values ('123-45-6789','Matt','1-800-555-1212')";begin(); // transaction begins$result = mysql_query($query);if(!$result){ rollback(); // transaction rolls back echo "transaction rolled back"; exit;}else{ commit(); // transaction is committed echo "Database transaction was successful";}?>
添加回答
舉報(bào)
0/150
提交
取消