Verrouillage de la table mysql avec php

Script 1.

$query_ = "lock tables test1 as test11 write";
mysql_query($query);
$query_ = "select * from test11";
sleep(20);
$query_ = "unlock tables";
mysql_query($query_);

Script 2.

$query_ = "select * from test1";
$result = mysql_query($query_);

Le problème est que si je lance second script lors de l'exécution de premier script. Tableau n'est pas verrouillé. Et je peux lire des données à partir d'elle.

J'ai besoin de verrouiller et de retour d'erreur.

Façon de faire ce travail?

  • Il ne peut pas répondre à votre question, mais vous devez cesser d'utiliser mysql_* fonctions. Ils sont désapprouvées. Au lieu d'utiliser PDO (à partir de PHP 5.1) ou mysqli (à partir de PHP 4.1). Si vous ne savez pas lequel utiliser, lire cet article.
  • Je crois que la table ne seront verrouillés pour que notamment connexion mysql instance. Je pense que cela fonctionne de cette manière pour éviter des conditions de course.
  • quel sens pour le verrouiller pour particulier de connexion mysql? Pourquoi mon script souhaitez insérer quelque chose quand je ne suis pas d'insérer quoi que ce soit?
  • Peut-être que je me trompe à ce sujet. Peut-être que je suis confus, et ce à quoi je pensais était qu'en fait, il se verrouille automatiquement la table pendant l'exécution du script pour éviter des conditions de course...désolé, je ne suis pas beaucoup d'aide ici.
InformationsquelleAutor pain.reign | 2012-08-29