ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルでの PDO の MySQL トランザクション処理アプリケーションの例

php_PHP チュートリアルでの PDO の MySQL トランザクション処理アプリケーションの例

WBOY
WBOYオリジナル
2016-07-13 17:06:43744ブラウズ

この記事では、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(); //トランザクション処理を開始 $price=500;
$sql="更新 zhanghao set 価格=価格-{$価格} ここで id=1";
$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 への転送に失敗しました");
echo "トランザクションが成功しました!";
$pdo->commit();//トランザクションが成功したら送信します
}catch(PDOException $e){
echo $e->getMessage();
$pdo->rollback();
}
$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 1);//自動送信、最終的に自動送信されないと転送は失敗します
//エラー報告モードを設定 ERRMODE_SILENT ERRMODE_WARNING

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

tru​​ehttp://www.bkjia.com/PHPjc/630684.html技術記事この記事では、php での pdo の mysql トランザクション処理の応用例を学生に紹介します。詳しく知りたい人は参考にしてください。 php+mysql トランザクション処理のいくつかの手順: 1. 自動送信をオフにする 2. オンにする...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。