1
我想在我的代碼的某些關鍵區域使用交易,但實際上並不適合我所做的一切。 我剛剛瞭解到AUTOCOMMIT值默認設置爲1,如果我想要START TRANSACTION和COMMIT或ROLLBACK,我應該將它設置爲0。MYSQL交易的問題,用PHP
- 有沒有更好的方法來處理自動提交?
- 我怎麼知道它是否設置?
- 在加載的每個頁面上它的值是否更改爲AUTOCOMMIT = 1?
我想在我的代碼的某些關鍵區域使用交易,但實際上並不適合我所做的一切。 我剛剛瞭解到AUTOCOMMIT值默認設置爲1,如果我想要START TRANSACTION和COMMIT或ROLLBACK,我應該將它設置爲0。MYSQL交易的問題,用PHP
使用PDO
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->beginTransaction();
try {
// do stuff
$pdo->commit();
} catch (Exception $ex) {
$pdo->rollBack();
throw $ex;
}
謝謝,我正在讀關於PDO,我想我會使用它的時間。但是現在情況如此,您是否會說我的ROLLBACK()和COMMIT()函數在我的START_TRANSACTION()和AUTOCOMMIT = 0上定義了AUTOCOMMIT = 1是一種解決方法? – Ted
@泰德,請使用最好的工具。現在,該工具是PDO – Phil
'$ pdo-> beginTransaction()'本身需要一個try ... catch塊。因爲可能發生事務已經存在,並且要求在不支持嵌套事務的引擎上啓動新事務可能導致觸發錯誤 – Sudhi