ホームページ  >  記事  >  バックエンド開発  >  php での pdo の mysql トランザクション処理の使用例、pdomysql_PHP チュートリアル

php での pdo の mysql トランザクション処理の使用例、pdomysql_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:10:45814ブラウズ

php、pdomysqlでのpdoのMysqlトランザクション使用例

この記事の例では、php での pdo の mysql トランザクション処理の使用法について説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:

php+mysqlトランザクション処理のいくつかのステップ:

1. 自動送信をオフにする 2. トランザクション処理を有効にする 3. 例外が発生した場合は自動的に例外プロンプトをスローし、ロールバックする 4. 自動送信をオンにする

注: MySQL は、この InnoDB ドライバーを使用したトランザクション処理のみをサポートします。デフォルトの MyIsAM ドライバーはこれをサポートしません。サンプル コードは次のとおりです。

コードをコピーします コードは次のとおりです:
試してください{
$pdo=new pdo("mysql:host=localhost;dbname=mydb", "root", "root", array(PDO::ATTR_AUTOCOMMIT=>0));//最後に、自動送信をオフにします
//$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 0);//これは、属性メソッドを設定することで自動送信をオフにします。これは上記の関数と同じです
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//例外処理をオンにする
}catch(PDOException $e){
echo "データベース接続に失敗しました:".$e->getMessage(); 終了します;
}
/*
*トランザクション処理
*
* * 張三は李斯から2,000元のコンピューターを購入しました
* * Zhang San の口座から 2,000 元を差し引いてください
* * Li Si のアカウントに 2,000 元を追加します
* * 製品リストから 1 台のコンピューターを削除します
* * MyIsAM InnoDB
*/
試してください{
$ pdo-> begintransaction(); //トランザクション処理を開始 $価格= 500
$sql="id=1 の Zhanghao 設定価格 = 価格 - {$price} を更新します"; $affected_rows=$pdo->exec($sql); if(!$affected_rows)
throw new PDOException("Zhang San's transfer failed");//そのエラーは例外をスローします
$sql="張豪設定価格=価格+{$価格}を更新します (id=3)"; $affected_rows=$pdo->exec($sql);
if(!$affected_rows)
throw new PDOException("Li Si への転送に失敗しました"); エコー「トランザクションが成功しました!」
$pdo->commit();//トランザクションが成功したら送信します
}catch(PDOException $e){
エコー $e->getMessage(); $pdo->rollback(); }
$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 1);//自動送信、最終的に自動送信されないと転送は失敗します
//エラー報告モードを設定します ERRMODE_SILENT ERRMODE_WARNING
?>


この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。




http://www.bkjia.com/PHPjc/933597.html
www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/933597.html

技術記事 php、pdomysql での pdo の mysql トランザクション処理の使用例 この記事では、php での pdo の mysql トランザクション処理の使用方法について説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです: php+mysql トランザクション...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。