ホームページ >バックエンド開発 >PHPチュートリアル >PDO::beginTransaction の使用方法の詳細な説明

PDO::beginTransaction の使用方法の詳細な説明

藏色散人
藏色散人オリジナル
2019-04-10 13:11:253016ブラウズ

この記事では主に PDO::beginTransaction の詳しい使い方を紹介しますので、困っている方のお役に立てれば幸いです。

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 = &#39;hamburger&#39;");
/*  识别出错误并回滚更改 */
$dbh->rollBack();
/* 数据库连接现在返回到自动提交模式 */
?>

関連する推奨事項:「PHP チュートリアル

以上がPDO::beginTransaction の使用方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。