beginTransaction(), commit() et rollBack() ne fonctionne pas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : beginTransaction(), commit() et rollBack() ne fonctionne pas

Re: beginTransaction(), commit() et rollBack() ne fonctionne

par Cyrano » 17 janv. 2012, 17:59

Quelle est la classe que tu utilises pour gérer tes requètes et beginTransaction : Roolback ?
Si tu regardes le bout de code que two3d a posté en introduction, tu pourras observer qu'aucune classe n'est utilisée spécifiquement même si ce bout de code pourrait être dans une classe, mais en l'occurrence, ce serait alors dans du code métier et non dans une classe dédiée exclusivement à l'accès aux données indépendamment de l'application.

Re: beginTransaction(), commit() et rollBack() ne fonctionne

par two3d » 17 janv. 2012, 17:46

aucune (en fin, je sais pas à vrai dire)

Re: beginTransaction(), commit() et rollBack() ne fonctionne

par xTG » 17 janv. 2012, 12:28

Quelle est la classe que tu utilises pour gérer tes requètes et beginTransaction : Roolback ?
Il s'agit de l'interface d'accès PDO.

Re: beginTransaction(), commit() et rollBack() ne fonctionne

par gaten » 17 janv. 2012, 12:25

Quelle est la classe que tu utilises pour gérer tes requètes et beginTransaction : Roolback ?

Re: beginTransaction(), commit() et rollBack() ne fonctionne

par two3d » 11 oct. 2011, 21:44

ok, je vous remercie pour vos réponses.

Je passe le sujet en résolu :wink:

[edit] j'ai pas trouvé le bouton "sujet résolu", vous savez où il se trouve svp?

Re: beginTransaction(), commit() et rollBack() ne fonctionne

par zeus » 10 oct. 2011, 23:29

Surtout que le passage de myIsam à InnoDB s'accompagne par une création complète d'index, ce qui est très couteux.
En fait, le moteur de base de données à utiliser doit être réfléchi au début, et une bonne fois pour toute.

Re: beginTransaction(), commit() et rollBack() ne fonctionne

par Cyrano » 10 oct. 2011, 12:42

Niet, pas possible, ou alors en effectuant une requête de modification juste avant les écritures et une autre fois juste après. Je ne le conseille pas du tout. La différence de vitesse ne justifie certainement pas une opération de ce genre, d'autant que ça veut dire deux requêtes de plus, juste ce temps d'exécution viendrait bouffer l'éventuel gain qui n'est même pas forcément garanti de façon significative.

Re: beginTransaction(), commit() et rollBack() ne fonctionne

par zeus » 10 oct. 2011, 12:42

Modération
Le sujet est déplacé dans un forum qui correspond plus au problème

Re: beginTransaction(), commit() et rollBack() ne fonctionne

par two3d » 10 oct. 2011, 12:38

Malheureusement ça va créer un malentendu car il me faudrait la table en MyISAM et en InnoDB.

ya t'il possibilité de change le moteur lors d'une requête utilisant une transaction et de le remettre ensuite en MyISAM ?

Re: beginTransaction(), commit() et rollBack() ne fonctionne

par Cyrano » 10 oct. 2011, 11:03

Tu peux parfaitement n'avoir que certaines tables avec InnoDB et d'autres avec un autre moteur, ça n'affecte pas du tout PDO, mais bien entendu pour les transactions, c'est automatiquement InnoDB. L'intérêt de pouvoir mixer les moteurs par contre, c'est que si certaines tables sont vraiment très sollicitées en lecture et beaucoup moins en écriture, il peut être préférable d'utiliser MyISAM qui sera beaucoup plus rapide.

Re: beginTransaction(), commit() et rollBack() ne fonctionne

par two3d » 10 oct. 2011, 09:04

Bingo !!! testé et approuvé :)

Le fait de passé le moteur en InnoDB effectue bien une transaction.

PS: le fait de travailler en PDO obliger de passer toutes les tables en InnoDB ou c'est juste pour les transactions ?


Encore merci pour ta réponse :wink:

Re: beginTransaction(), commit() et rollBack() ne fonctionne

par Cyrano » 09 oct. 2011, 22:59

Le moteur InnoDB a pour « défaut » de ralentir un peu en mode écriture, mais ce ne devrait pas être nécessairement très significatif. Et de toutes façons si tu veux faire des transactions, tu n'as pas un choix considérable...

Re: beginTransaction(), commit() et rollBack() ne fonctionne

par moogli » 09 oct. 2011, 22:57

salut,

a voir chez mysql mais ça devrait pas, par contre si tu a une recherche full text cela ne fonctionnera plus !

@+

Re: beginTransaction(), commit() et rollBack() ne fonctionne

par two3d » 09 oct. 2011, 22:51

Merci de ta réponse mais le fait de passer en InnoDB cela ne risque pas de poser un problème en sachant que mes tables sont constamment en actions genre 100 INSERT / seconde ?

Re: beginTransaction(), commit() et rollBack() ne fonctionne

par Cyrano » 09 oct. 2011, 22:28

Absolument, et le moteur MyISAM ne supporte pas les transaction, donc soit tu changes le moteur, soit tu ajustes les transactions par programmation, ce qui sera somme toute plus compliqué, pas impossible certes, mais pas simple du tout parce que ça veut dire que tu devras prévoir de récupérer les identifiants des données insérées et en cas de plantage d'une des requêtes faire exécuter d'autres requêtes DELETE correspondantes.