PHP PDO::commit() 설명서에 성공하면 메서드가 TRUE를 반환하고 실패하면 FALSE가 반환됩니다. 이것은 beginTransaction()과 commit() 사이의 명령문 실행 성공 또는 실패를 참조합니까? 문서에서 예를 들어PDO :: 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();
위의 실행 중 하나가 실패하면() 메소드를 커밋합니다 인해 원자 트랜잭션의 "전부 아니면 아무것도 기준"에 false를 반환?
$dbh->beginTransaction();
try {
// insert/update query
$dbh->commit();
} catch (Exception $e) {
$dbh->rollBack();
}
을 항상 매력으로 일 :
나는 코드베이스 내에서 커밋 할 필요가 없다는 것을 상기 해 본적이 없다. – Jonast92
이해할 수 있는지 잘 모르겠습니다.수동 트랜잭션의 요점은 여러 명령문이 모두 성공했는지 또는 모두 실패했는지 확인하는 것입니다. –
나는 당신이 그것을 과장 생각한다고 생각합니다. 이 시나리오에서 하나가 실패하면 대부분이 실패하고 그 반대의 경우도 마찬가지입니다. 코드에 적절한 오류 처리를 추가하기 만하면 무엇이 실패했는지에 대해 정말로 염려하면 단순히 기록하십시오. 나는 서버 측 코드에서 커밋을 사용하지 않아도된다. 나는 당신이 그렇게 할 것 같지 않다. – Jonast92