加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php – PDO :: commit()成功或失败

发布时间:2020-05-31 01:08:10 所属栏目:PHP 来源:互联网
导读:PHP PDO::commit()文档声明该方法在成功时返回TRUE,在失败时返回FALSE.这是指beginTransaction()和commit()之间语句执行的成功还是失败? 例如,从文档中: $dbh-beginTransaction();$sql = INSERT INTO fruit (name, colour, calories) VALUES (?, ?, ?);$st

PHP PDO::commit()文档声明该方法在成功时返回TRUE,在失败时返回FALSE.这是指beginTransaction()和commit()之间语句执行的成功还是失败?

例如,从文档中:

$dbh->beginTransaction();
$sql = 'INSERT INTO fruit (name,colour,calories) VALUES (?,?,?)';
$sth = $dbh->prepare($sql);

foreach ($fruits as $fruit) {
    $sth->execute([
        $fruit->name,$fruit->colour,$fruit->calories,]);
}

$dbh->commit();

如果上述任何执行失败,由于原子事务的“全有或全无”基础,commit()方法是否会返回false?

返回值基于pdo :: commit本身,而不是您尝试提交的事务.
当没有事务处于活动状态时它返回FALSE,但是当它应该返回TRUE或FALSE时它不是很清楚.

事务本身内执行的查询将成功或失败.
使用Mr.Tk的示例,如果可能,将提交事务,并且在“try”块中执行查询时不会发生错误,并且如果在“try”块中发生错误则回滚.

当只评估“try”块中执行的查询时,我个人会尝试捕获PDOException而不是正常的Exception.

$dbh->beginTransaction();
try {
    // insert/update query
    $dbh->commit();
} catch (PDOException $e) {
    $dbh->rollBack();
}

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读