Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Transaction SQL sur plusieurs pages

4 réponses
Avatar
Guillaume
Je voudrais garder une transaction SQL sur plusieurs pages. Le but étant
d'avoir un minimum d'interactivité avec l'utilisateur et d'être capable
d'annuler complètement l'opération dans la BDD si besoin est.

Le problème est que l'interpréteur PHP démarre et s'arrête pour chaque
page PHP à interpréter. Du coup, ma connexion SQL (et ma transaction
avec) est perdue entre chaque rendu ; je ne peux pas garder ma
transaction sur plusieurs pages.

Est-ce qu'il y a un moyen simple de s'en sortir en PHP ? J'ai cru
comprendre que les serveurs d'application java (EJB, etc...) permettent
de faire ce genre de chose au prix d'une certaine lourdeur de développement.

4 réponses

Avatar
h-barre
Je voudrais garder une transaction SQL sur plusieurs pages. Le but étant
d'avoir un minimum d'interactivité avec l'utilisateur et d'être capable
d'annuler complètement l'opération dans la BDD si besoin est.

Le problème est que l'interpréteur PHP démarre et s'arrête pour chaque page
PHP à interpréter. Du coup, ma connexion SQL (et ma transaction avec) est
perdue entre chaque rendu ; je ne peux pas garder ma transaction sur
plusieurs pages.

Est-ce qu'il y a un moyen simple de s'en sortir en PHP ? J'ai cru comprendre
que les serveurs d'application java (EJB, etc...) permettent de faire ce
genre de chose au prix d'une certaine lourdeur de développement.


et si tu mets le resultat obtenu par ton mysql_query dans une variable
de session, ça donne koi ?

H-Barre

Avatar
clifden
Guillaume wrote:
Je voudrais garder une transaction SQL sur plusieurs pages. Le but étant
d'avoir un minimum d'interactivité avec l'utilisateur et d'être capable
d'annuler complètement l'opération dans la BDD si besoin est.

Le problème est que l'interpréteur PHP démarre et s'arrête pour chaque
page PHP à interpréter. Du coup, ma connexion SQL (et ma transaction
avec) est perdue entre chaque rendu ; je ne peux pas garder ma
transaction sur plusieurs pages.

Est-ce qu'il y a un moyen simple de s'en sortir en PHP ? J'ai cru
comprendre que les serveurs d'application java (EJB, etc...) permettent
de faire ce genre de chose au prix d'une certaine lourdeur de
développement.


A part déporter ta transaction sur la dernière page, en gérant de
manière adéquat les différentes étapes intermédiaires, je ne vois pas.

Une fois sur la dernière page, une fois que tu es sur que les
différentes étapes sont ok, tu lances ta transaction.

Entre temps, tu es peut être obligé de lancer des inserts, en utilisant
une colonne flag, de manière à siginifier que l'enregistrement est
reservé et en attente de confirmation.

Voilà pour des généralités. Mais sans savoir ce que tes différentes
pages font, je ne peux t'en dire plus.

Avatar
Patrick Mevzek
Je voudrais garder une transaction SQL sur plusieurs pages. Le but étant
d'avoir un minimum d'interactivité avec l'utilisateur et d'être capable
d'annuler complètement l'opération dans la BDD si besoin est.


Mauvaise idée. Le sort de la transaction (sa durée) ne doit pas être
sous le contrôle direct ou indirect d'un utilisateur.
Il faudra donc revoir la logique de votre application.

On peut sinon toujours (essayer de) s'en sortir en déléguant la
connexion au SGBDR à un intermédiaire (pooling).

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>

Avatar
Denis Beauregard
Le 26 Feb 2006 14:12:14 GMT, Guillaume
écrivait dans fr.comp.lang.php:

Je voudrais garder une transaction SQL sur plusieurs pages. Le but étant
d'avoir un minimum d'interactivité avec l'utilisateur et d'être capable
d'annuler complètement l'opération dans la BDD si besoin est.

Le problème est que l'interpréteur PHP démarre et s'arrête pour chaque
page PHP à interpréter. Du coup, ma connexion SQL (et ma transaction
avec) est perdue entre chaque rendu ; je ne peux pas garder ma
transaction sur plusieurs pages.

Est-ce qu'il y a un moyen simple de s'en sortir en PHP ? J'ai cru
comprendre que les serveurs d'application java (EJB, etc...) permettent
de faire ce genre de chose au prix d'une certaine lourdeur de développement.


Session ou cookie !

Tant que la session n'est pas complétée, tu conserves les données
soit dans une session, soit dans des cookies (plus sécuritaire).


Denis