Maison > php教程 > PHP开发 > Méthode de table de verrouillage Yii MYSQL pour éviter les données en double en simultanéité

Méthode de table de verrouillage Yii MYSQL pour éviter les données en double en simultanéité

高洛峰
Libérer: 2017-03-30 15:17:52
original
2368 Les gens l'ont consulté

L'exemple de cet article décrit la méthode de la table de verrouillage Yii MYSQL pour éviter les données en double dans les situations de concurrence. Partagez-le avec tout le monde pour votre référence, comme suit :

lock table read lock

Si un thread acquiert un verrou en lecture sur une table, alors ce thread et tous les autres threads ne peuvent lire que les verrous de la table Lire les données, aucune opération d'écriture ne peut être effectuée.

lock tables user read;//读锁定表
unlock tables;//解锁
lock tables user read local;//本地读锁定表,其他线程的insert未被阻塞,update操作被阻塞
Copier après la connexion

verrouiller le verrou en écriture de la table

Si un thread obtient un verrou en écriture sur une table, alors seul le thread qui possède le verrou peut lire et écrire dans la table. D'autres fils de discussion sont bloqués.

lock tables user write;//写锁定表
unlock tables;//解锁
Copier après la connexion

Exemples d'utilisation dans Yii

/**
* 当日单项内容状态
*/
public function getPointAready($marke,$dayTime){
  $model = SysRun::model()->findByAttributes(array('syr_marking'=>$marke,'syr_daytime'=>$dayTime));
  if(empty($model)){
    //表写锁定
    Yii::app()->db->createCommand()->setText("lock tables {{sys_run}} WRITE")->execute();
    $model = new SysRun();
    $model->syr_marking = $marke;
    $model->syr_daytime = $dayTime;
    $model->syr_val = 0;
    $model->syr_subval = 0;
    $model->save();
    //表解锁
    Yii::app()->db->createCommand()->setText("unlock tables")->execute();
  }
  return $model;
}
Copier après la connexion

J'espère que cet article sera utile à la conception de programmes PHP de chacun basés sur le framework Yii.

Pour plus de méthodes de table de verrouillage Yii MYSQL afin d'éviter les données en double dans les articles liés à la concurrence, veuillez faire attention au site Web PHP 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
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal