Commit ?

Commit ? - SQL/NoSQL - Programmation

Marsh Posté le 07-09-2010 à 14:11:34    

Bonjour,
 
J'utilise une base de données Oracle.
Lorsque je fais une requête INSERT, UPDATE ou DELETE directement sur le SGBD (iSQLPlus, SQL Developer, etc.), je dois faire un commit pour valider la transaction.
 
Pourquoi quand je fais une requête via PHP, ou tout autre langage de programmation, je n'ai pas besoin de faire un commit ? Le commit est-il "comprit" dans les fonctions du langage de programmation ?
 
En espérant que vous pourrez m'éclairer sur ce point,
Je vous remercie d'avance.


---------------
>> Culture-Info : La culture informatique pour tous (projet scolaire) <<
Reply

Marsh Posté le 07-09-2010 à 14:11:34   

Reply

Marsh Posté le 07-09-2010 à 14:24:06    

En effet, le driver Oracle de PHP est par défaut en "auto commit".

Reply

Marsh Posté le 07-09-2010 à 15:31:48    

...et tu peux désactiver ce comportement simplement - par exemple si tu utilises l'extension OCI tu peux utiliser le second paramètre optionnel de oci_execute pour désactiver le mode autocommit, puis utiliser oci_commit et oci_rollback.


Message édité par skeye le 07-09-2010 à 15:32:03

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 07-09-2010 à 16:20:50    

Ah super, en effet j'ignorais cette option d'auto-commit.
Merci à vous deux :-)


---------------
>> Culture-Info : La culture informatique pour tous (projet scolaire) <<
Reply

Marsh Posté le 07-09-2010 à 17:48:13    

jeff@be a écrit :

En effet, le driver Oracle de PHP est par défaut en "auto commit".


c'est une blague ? [:mlc]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-09-2010 à 17:52:41    

Harkonnen a écrit :


c'est une blague ? [:mlc]


Non. Et c'est pareil pour tous les sgbd, à ma connaissance.
Si tu veux démarrer une transaction il faut le faire explicitement.[:dawa]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 07-09-2010 à 20:46:14    

Harkonnen a écrit :


c'est une blague ? [:mlc]


C'est très répandu, et ce n'est sans doute pas une bonne idée mais bon... C'est ça ou subir des vagues de protestations sur le mode "ça marche pas!"  [:dawa]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 07-09-2010 à 21:45:31    

sircam a écrit :


C'est très répandu, et ce n'est sans doute pas une bonne idée mais bon...


Ça évite de perdre des données et de wedger la DB parce que t'as niqué ta transaction et tu sais même pas qu'il faut la rollbacker. C'est le meilleur défaut puisque c'est celui qui fonctionne pour les gens ne sachant pas ce qu'est une transaction.

 

les autres désactivent l'autocommit et baste. Puis bon la majorité des phpteux partent sur une DB qui ne comprend même pas le concept de transaction alors [:petrus75]

Message cité 1 fois
Message édité par masklinn le 07-09-2010 à 21:47:24

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-09-2010 à 09:31:36    

masklinn a écrit :


Ça évite de perdre des données et de wedger la DB parce que t'as niqué ta transaction et tu sais même pas qu'il faut la rollbacker. C'est le meilleur défaut puisque c'est celui qui fonctionne pour les gens ne sachant pas ce qu'est une transaction.
 
les autres désactivent l'autocommit et baste. Puis bon la majorité des phpteux partent sur une DB qui ne comprend même pas le concept de transaction alors [:petrus75]


 
Pas compris  :??:. Qu'est-ce que tu reproches aux transactions de MySQL ?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 08-09-2010 à 09:44:23    

esox_ch a écrit :

Pas compris  :??:. Qu'est-ce que tu reproches aux transactions de MySQL ?


Les transactions MySQL? Sur une DB MyISAM?

Spoiler :

et même sur du innodb, pas de sous transactions (transactions récursives ou savepoints) et DDL pas transactionné que ce soit sur les tables (sauf temp), les procs, les functions, les views, les triggers ou les constraints


Message édité par masklinn le 08-09-2010 à 09:48:38

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-09-2010 à 09:44:23   

Reply

Marsh Posté le 08-09-2010 à 09:49:05    

Je pensais plutôt à InnoDB..

 

Edit: Ok. Mais donc si t'avais un projet à lancer sur plate-forme non-MS. Tu partirais sur quoi? Postgres?

Message cité 1 fois
Message édité par esox_ch le 08-09-2010 à 09:50:16

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 08-09-2010 à 09:56:44    

esox_ch a écrit :

Je pensais plutôt à InnoDB..
 
Edit: Ok. Mais donc si t'avais un projet à lancer sur plate-forme non-MS. Tu partirais sur quoi? Postgres?


Si j'avais à utiliser un RDBMS? Oui, et/ou sqlite en dev ou si quasiment que du read (genre 99% ou 99.9% de read)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed