この記事では主に PDO::beginTransaction の詳しい使い方を紹介しますので、困っている方のお役に立てれば幸いです。
PDO::beginTransaction(PHP 5 >= 5.1.0、PHP 7、PECL pdo >= 0.1.0)
PDO::beginTransaction はトランザクションを開始します。
構文説明:
PDO::beginTransaction ( void ) : bool
自動送信モードをオフにします。自動コミット モードがオフになっている場合、PDO オブジェクト インスタンスを通じてデータベースに加えられた変更は、トランザクションを終了するために PDO::commit() が呼び出されるまでコミットされません。 PDO::rollBack() を呼び出すと、データベースに加えられた変更がロールバックされ、データベース接続が自動コミット モードに戻ります。
MySQL などの一部のデータベースは、DROP TABLE や CREATE TABLE などの DDL ステートメントを発行するときに、暗黙的なトランザクションを自動的にコミットします。暗黙的にコミットすると、このトランザクションの範囲内で他の変更をロールバックできなくなります。
戻り値:
成功した場合は TRUE を返し、失敗した場合は FALSE を返します。
コード例:
トランザクションのロールバック
次の例では、この変更をロールバックします。トランザクションを開始し、データベースを変更する 2 つのステートメントを発行する前。ただし、MySQL では、DROP TABLE ステートメントによってトランザクションが自動的にコミットされるため、このトランザクション内の変更はロールバックされません。
<?php /* 开始一个事务,关闭自动提交 */ $dbh->beginTransaction(); /* 更改数据库架构及数据 */ $sth = $dbh->exec("DROP TABLE fruit"); $sth = $dbh->exec("UPDATE dessert SET name = 'hamburger'"); /* 识别出错误并回滚更改 */ $dbh->rollBack(); /* 数据库连接现在返回到自动提交模式 */ ?>
関連する推奨事項:「PHP チュートリアル 」
以上がPDO::beginTransaction の使用方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。