Se connecter / S'enregistrer
Votre question

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

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
14 Février 2006 20:09:03

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 ?

Autres pages sur : locker table temps execution requete php

14 Février 2006 20:45:23

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.
15 Février 2006 17:57:54

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
16 Février 2006 08:33:04

je vous cite:
Citation :
Le script fonctionne qd j'enlève les locks

donc la réponse est dans la question non?
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS