[請益] transaction如何寫?

作者: backfish (121)   2015-01-19 15:12:47
小弟目前正在學習mysql的transaction的寫法,
我的程式碼如下:
function qnr($qstring) {
$this->dbh->beginTransaction();
try{
$rs = $this->dbh->prepare($qstring);
if(!$rs->execute())
{
echo 'Error!: ' . $qstring . '<br />';
exit;
}
$this->dbh->commit();
}catch (PDOException $e) {
$this->dbh->rollBack();
echo 'Error!: ' . $e->getMessage() . '<br />';
exit;
}
}
其中之所以會有$this,是因為這個function寫在一個class裡面。
我有試著帶入一段錯誤的$qstring去執行(把insert寫成inser),
不過執行結果卻沒有echo出Error,而是沒有任何反應。
我想請問大大們,我這樣寫的順序是正確的嗎?
還有我那段if(!$rs->execute())的判斷是從網路上學來的,
我覺得應該有更正式的寫法,不知道有沒有?
我會去學transaction是因為有客戶的需求,
他要求程式能在資料儲存之後計算出「儲存成功」與「儲存失敗」的次數。
謝謝
作者: crossdunk (推噓自如)   2015-01-19 15:27:00
我的beginTransaction 都放在try裡面
作者: knives   2015-01-19 21:01:00
執行Rollback 的時候就跳出了,你應該把錯誤訊息塞在rollback裡面

Links booklink

Contact Us: admin [ a t ] ucptt.com