作者backfish (121)
看板PHP
標題[請益] transaction如何寫?
時間Mon Jan 19 15:12:47 2015
小弟目前正在學習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是因為有客戶的需求,
他要求程式能在資料儲存之後計算出「儲存成功」與「儲存失敗」的次數。
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.165.33.44
※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1421651584.A.B72.html
推 crossdunk: 我的beginTransaction 都放在try裡面 01/19 15:27
推 knives: 執行Rollback 的時候就跳出了,你應該把錯誤訊息塞在rollb 01/19 21:01
→ knives: ack裡面 01/19 21:01