Maison > développement back-end > tutoriel php > Explication détaillée de la façon dont Yii empêche les données de mise à jour inexactes causées par la concurrence

Explication détaillée de la façon dont Yii empêche les données de mise à jour inexactes causées par la concurrence

*文
Libérer: 2023-03-19 07:40:01
original
1519 Les gens l'ont consulté

Comment Yii empêche-t-il les données de mise à jour inexactes causées par la concurrence ? Cet article présente principalement la solution simple de Yii pour empêcher la concurrence de provoquer des données de mise à jour inexactes. Les amis dans le besoin peuvent s'y référer. J'espère que cela aide tout le monde.

Partagez un morceau de code utile de Yii :

Lorsque vous devez incrémenter un certain champ dans la base de données, comme compter le nombre de requêtes par jour, ajoutez request_count après chaque demande +1,

Si vous écrivez comme ceci :

$model->request_count++;
$flag = $model->save();
Copier après la connexion

ce sera inexact en cas de concurrence. Vous pouvez le remplacer par :

$flag = static::updateAll([
'report_count' => new \yii\db\Expression("`request_count` + 1")
], [
'id' => $model->id
]);
Copier après la connexion
Ouvrez six processus en même temps pour l'insertion En augmentant chaque processus 100 fois, la première méthode n'a augmenté que jusqu'à 587 et la deuxième méthode est passée à 600.

Recommandations associées :

Explication détaillée de la classe d'extension simple du framework Yii pour l'insertion de données par lots

Résoudre le problème selon lequel la requête IN ne peut interroger qu'une seule requête dans la requête paramétrée du framework Yii

Yii résout le problème de DeleteAll rapport d'erreur de suppression de table de connexion

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal