transaction en php/mysql : comment gerer 1 trs ds plusieurs scripts ? - PHP - Programmation
Marsh Posté le 18-07-2004 à 21:37:13
Hmmm c moi qui suis bête ? Parce que je n'ai rien comprite
Marsh Posté le 18-07-2004 à 21:47:52
ze-angel a écrit : Hmmm c moi qui suis bête ? Parce que je n'ai rien comprite |
bin ,
je veux pouvoir faire une transaction sur plusieurs scripts php (plusieurs page koi )
sur ma 1ere page j'ai :
$id=mysql_pconnect ('srv','usr','pwd' ) ;
mysql_query ('begin',$id);
ensuite mes requetes de mise a jour ...
apres :
j'ouvre une popup.
et je fais aussi des mise a jour sur ma base
puis quand je reviens dans ma page principale
je veut pouvoir soit faire
mysql_query ('rollback,$id);
ou
mysql_query ('commit',$id);
voila !
le bleme c'est que quand j'ouvre ma popup et que je me connecte a la base je crée une nouvelle connexion et donc cela cree aussi une nvlle transaction...
voila voila
Marsh Posté le 18-07-2004 à 22:35:42
Hmm je vois si j'ai bien tout compris tu peux avoir besoin d'une connexion persistante a ta base SQL.
http://www.lephpfacile.com/faq_php [...] ersistante
Par contre faut faire gaffe car la connexion reste ouverte...
Marsh Posté le 19-07-2004 à 02:00:26
Ça parait difficile à résoudre... Je ne suis pas sûr que mysql_pconnect permette de rester dans une même transaction sql entre deux requêtes http.
Je vois une solution, ça serait peut être de gérer ton popup en javascript. Les actions dans le popup seraient transmises à la page principale, qui ferait toutes les requêtes. Suivant l'appli, ça peut être chaud, ceci dit.
Marsh Posté le 19-07-2004 à 02:09:15
DjMerguez a écrit : Je ne suis pas sûr que mysql_pconnect permette de rester dans une même transaction sql entre deux requêtes http. |
Si si ... tu fais juste un pconnect avec même login/pwd dans chaque script PHP et il réutilise la connexion ouverte précédemment.
Marsh Posté le 28-07-2004 à 04:19:52
Mr Mala a écrit : Si si ... tu fais juste un pconnect avec même login/pwd dans chaque script PHP et il réutilise la connexion ouverte précédemment. |
retour de vacance....
bin non
si tu fais un pconnect dans la fenetre mere et un pconnect ds la popup, cela ouvre une autre connexion
pconnect fonctionne bien comme tu dis mais uniquement dans le cas ou les scripts (pages) ne sont pas actifs en meme temps...
c'est t'y possible de passer en parametre un id de connexion ? j'ai pas reussi ...
Marsh Posté le 28-07-2004 à 20:21:07
C'est tout simplement impossible. Le HTTP étant un mode déconnecté, tu perds ta connexion courrante en ouvrant une pop-up.
Marsh Posté le 28-07-2004 à 20:22:17
manofjah a écrit : |
pourquoi ouvres tu un pop-up ? affichage seulement non ?
tu fais ton traitement depuis la page maitresse et basta
soit tu fais difficilement la différence entre traitement et présentation, soit y'a un gros pb de conception
Marsh Posté le 29-07-2004 à 23:23:43
simogeo a écrit : pourquoi ouvres tu un pop-up ? affichage seulement non ? |
je vois pas pourquoi ....
ma page principale permet de modifier les donnée de ma table principale et les popup les donnees des table de references ...
je vois pas ou y'a un bleme de conception...
m'enfin
Marsh Posté le 29-07-2004 à 23:25:04
Reply
Marsh Posté le 18-07-2004 à 21:12:40
salut !
je cree une transaction sur mysql (INNODB) dans une page avec un begin et, de cette page j'ouvre des popup ds lesquels je fais aussi des mises a jour dans ma base .
Je voudrais pouvoir rollbaker toutes mes modifs (des deux pages donc)
mais je n'y arrive pas !!!
ds ma popup mysql_pconnect ouvre une nouvelle transaction et donc quand je commit ou rollback ds la page principale cela n'affecte pas les mise a jours de ma popup...
merci de votre aide !!!
mano