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

前端之家收集整理的这篇文章主要介绍了php – PDO :: commit()成功或失败前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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();
}
原文链接:https://www.f2er.com/php/240299.html

猜你在找的PHP相关文章