Maison cadre php PensezPHP Opérations de transaction dans ThinkPHP6

Opérations de transaction dans ThinkPHP6

Jun 23, 2020 am 09:28 AM
thinkphp6

Les opérations de transaction peuvent être un peu inconnues pour de nombreux nouveaux arrivants. Même après avoir lu la partie sur les opérations de transaction du manuel officiel de ThinkPHP6, ils ne la comprennent toujours pas. Ensuite, je vais vous présenter les opérations de transaction.

1. Parlons d'abord des scénarios d'utilisation.

Supposons que je doive transférer 1 000 yuans à un ami. La logique commerciale normale est la suivante :

1. La banque déduit 1 000 yuans de mon compte

2. La banque a ajouté 1 000 yuans au compte de l'ami.

Si tout se passe bien, le transfert est réussi !

Ensuite, la question est la suivante : si je saisis accidentellement le mauvais compte bancaire et que la banque ne trouve pas le compte bancaire que j'ai saisi, mais que l'argent a été déduit de mon compte à ce moment-là, que dois-je faire ?

Nous disons souvent dans nos vies : « Si l'argent ne peut pas être transféré, la banque le restituera. » Voilà ce que cela signifie.

2. Définition de l'opération de transaction.

Ainsi, à travers l'exemple ci-dessus, nous comprenons ce qu'est une opération de transaction. Une transaction fait référence à un groupe logique d'opérations qui composent ce groupe d'opérations, soit toutes réussissent, soit toutes échouent.

Tout comme l'exemple de transfert d'argent ci-dessus, soit le transfert est réussi, sinon, je dois restituer mon argent, ce qui signifie revenir à l'état initial, également appelé « rollback ».

3. Opérations de transactions dans ThinkPHP6.

Nous comprenons les scénarios d'utilisation des opérations de transaction, alors comment les utiliser dans ThinkPHP6 ?

Db::transaction(function () {
    Db::table('think_user')->insert(['name'=>'aaa']);
    Db::table('think_user')->delete(1);
});

En regardant l'exemple ci-dessus, l'opération de suppression ne sera effectuée que lorsque nous insérerons avec succès l'enregistrement. Si l'insertion échoue, l'opération de suppression ne sera pas effectuée.

Par exemple, si nous écrivons délibérément un mauvais nom de champ1, que le nom de champ1 n'existe pas dans la table de données et que le programme d'insertion ne sera pas exécuté avec succès, alors l'instruction de suppression suivante ne pose pas de problème, mais elle ne sera toujours pas exécuté.

De plus, nous pouvons également contrôler les transactions manuellement. Regardez le code suivant :

// 启动事务
Db::startTrans();
try {
    Db::table('think_user')->find(1);
    Db::table('think_user')->delete(1);
    // 提交事务
    Db::commit();
} catch (\Exception $e) {
    // 回滚事务
    Db::rollback();
}

Ce qui précède est le contenu des opérations de transaction dans ThinkPHP6. En expliquant les exemples de notre vie réelle, tout le monde peut avoir une bonne compréhension des opérations de transaction.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds