小弟目前正在學習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是因為有客戶的需求,
他要求程式能在資料儲存之後計算出「儲存成功」與「儲存失敗」的次數。
謝謝