Tom's Guide > Forum > Programmation > locker une table le temps d'exécution d'une requète - PHP

locker une table le temps d'exécution d'une requète - PHP

Forum Programmation : locker une table le temps d'exécution d'une requète - PHP

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

je viens de découvir qu'il était possible de vérouiller un table mysql.

Voila à chaque chargement de mon site j'inclus un autre script qui envoi un résumé de mes annonces environ 2000 mails. Je les envoies par paquet de 10 et à chaque mail qui part je supprime de la table.

Par contre j'ai des soucis dans le cas ou il y aurait une requete simultanée ... cela crée des doublons.

//mysql_query("LOCK TABLES mailingannonce_encours READ" );
$req5 = mysql_query("SELECT * FROM mailingannonce_encours LIMIT 0,10" ,$id_connexion);
while($row = mysql_fetch_array($req5))


{

$id_mail = $row['id_mail'];
$email = $row['mail'];
$id_mailingannonce = $row['id_mailingannonce'];

$req6 = mysql_query("SELECT message FROM mailingannonce WHERE id_mailingannonce=$id_mailingannonce" ,$id_connexion);
while($row = mysql_fetch_array($req6))
{
$message = $row['message'];
}
//if(mail($email,$sujet,$message,$headers))
//{
$req7 = mysql_query("DELETE FROM mailingannonce_encours WHERE id_mail=$id_mail" ,$id_connexion);
//}

}
//mysql_query("UNLOCK TABLES" );

Le script fonctionne qd j'enlève les locks mais si je verouille cela ne fonctionne plus.
QQ'un a t'il un avis ?

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

en général on essaie de ne pas verrouiller une table car cela empêche de travailler à plusieurs sur cette table. Si on a besoin de verrouiller on ne le fait que pour une opération très courte (ou pour des opérations de maintenance).

En pratique, le verrouillage n'est fait qu'en cas de modification d'un enregistrement. Ici comme vous faites une destruction, cela n'est même pas utile.

Répondre à milmot

Merci pour votre réponse,

Je suis d'accord mm si les tables utilisés ne concernent aucun utilisateur juste le script de mailing
Quel méthode pourrais je utilisé pr arriver à mes fins dans ce cas.

Cordialement,
Corben33

Répondre à Corben33

je vous cite:

Citation :

Le script fonctionne qd j'enlève les locks


donc la réponse est dans la question non?

Répondre à milmot
Tom's Guide > Forum > Programmation > locker une table le temps d'exécution d'une requète - PHP
Aller à :

Il y a 1534 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens