作者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://webptt.com/cn.aspx?n=bbs/PHP/M.1421651584.A.B72.html
1F:推 crossdunk: 我的beginTransaction 都放在try里面 01/19 15:27
2F:推 knives: 执行Rollback 的时候就跳出了,你应该把错误讯息塞在rollb 01/19 21:01
3F:→ knives: ack里面 01/19 21:01