[请益] 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