Transactionner Suppression
Bonjour,
Je dois gerer la suppression de 5 fichier stockes sur mon serveur.
Je veux que ca fonctionne en mode : tout ou rien.
Par exemple, le premier et second fichier sont supprimé, au troisieme j'ai une erreur qui m'empeche de supprimer.
Je voudrais une sorte de rollback, qui annule la suppression des fichiers 1 et 2, comment faire ?
Pour info, j'utilise unlink pour supprimer mes fichiers.
Pour plus d'info, il s'agit de la suppresion d'une fiche produit avec des données en bdd et des fichiers sur le serveur.
Merci de vos conseils,
Ciao,
I am singing in the rain , I am happy again !!
Tu n'as pas de moyen de contrôler cela.
Sauf a posteriori, c'est à dire retenter une suppression si jamais elle plante. Mais si elle plante, en général, c'est que quelque chose d'anormal s'est passé, donc que tu dois vérifier quelque chose.
le 01/08/2007 à 13:39
Bzh
Si, tu peux !
1->Tu copies chaque fichier dans /tmp.
2->Tu vérifies que la copie s'est bien passe (is_file() )
3->Tu unlink tous tes fichiers
4->Tu testes (is_file() ) la suppression
OK -> Opérations terminés
Pas OK -> Tu recopies les fichier de /tmp vers le dossier d'origine
Voila... Tout simplement !!!
Je pensais a ca, aussi mais bon c'est un peu lourd et si la copie du backup foire, je suis b*****.
Ciao,
I am singing in the rain , I am happy again !!
le 01/08/2007 à 13:47
Bzh
Et bien teste ! Si a chaques étapes tu testes, il n'y a pas de risque !
Je pense que je vais faire comme cela, ca sera le plus judicieux :
Recuperer les noms de fichiers du produit
Supprimer les données en bdd du produit (mode transaction)
Supprimer les fichiers
Test a chaque suppression, si ca echoue, je sauvegarde dans un log d'erreur et plus tard je supprimerai a la main, ou avec un script pour retenter un unlink.
Ciao,
I am singing in the rain , I am happy again !!
Pas OK -> Tu recopies les fichier de /tmp vers le dossier d'origine
Et si la copie plante ? Tu reviens au point de départ.
Ce sont des actions séquentielles, donc à moins de tout faire en même temps, tu ne pourras pas checker que tout se passe bien et donc revenir en arrière.
Si les fichiers ne sont pas volumineux, tu peux stocker cela temporairement en mémoire.
lecture du fichier (en binaire éventuellemnt) et stockage du contenu et du nom de fichier dans un tableau
Suppression du fichier
Suppression ok ? continue : restauration
Bien évidement si les fichiers sont trop lourd cela va poser des problèmes :)
Sinon tu peux utiliser un rename sur le fichier.
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
Pourquoi la suppression doit-elle être annulée ? qu'est-ce que cela entraine comme problème que la suppression ne s'effectue pas ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: