Hello!
J'aimerais m'assurer de quelque chose au niveau des transactions lorsqu'on utilise une base de donnée Oracle et qu'il y a une applic PHP.
Je suis sur un projet en ce moment et je remarque que dans les pages qui sont déjà créé, lorsqu'on insère un nouvel enregistrement dans la base, a aucun moment il n'y a de validation de la transaction (commit) et pourtant les enregistrement sont quand même bien enregistrer dans la base.
Voici comment ça se passe :
Utilisateur 1 :
- Se connecte
- Formulaire d'ajout
- Page de traitement ajoutant
- Page confirmant que l'enregistrement a réussi
Utilisateur 2
- Se connecte
- Voit l'enregistrement de l'utilisateur 1, alors qu'il ne devrait pas
Donc l'utilisateur 2 voit l'enregistrement de l'utilisateur 1 alors qu'il n'a jamais valider sa transaction. Dans une base de donnée, ça ne devrait pas arriver.
Dans une BD la transaction se fait soit :
-Manuelement avec le commande commit
- Lorsqu'on execute une commande de LDD
-
Lorsque l'utilisateur se déconnecte
Donc ce que j'imagine, c'est qu'à la fin de la page de traitement, la connexion est fermée, et donc il y a une validation automatique. Est-ce que mon raisonnement est juste il y a une autre explication ?
Car je dois rendre un document qui explique comment est fait mon applic et il y a un chapitre sur les transactions. J'aimerais éviter d'écrire des truc faux ^^
Au fait, voici les fonction php :
odbc_connect() // Se connecter à la base
odbc_do() // Executer une requête
odbc_commit() // Valider la transaction, mais je ne l'ai jamais utilisé car la validation est automatique apparament...
Merci d'avance!