IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Les transactions MySQL [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Par défaut Les transactions MySQL
    Bonjour,

    Je souhaiterais savoir comment faire une transaction MySQL.

    J'ai pas mal cherché sur le web mais rien ne fonctionne.

    Il faut utiliser COMMIT et ROOLBACK.

    merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    La documentation est pourtant simple :
    http://dev.mysql.com/doc/refman/5.0/fr/commit.html

    Quel probleme rencontres-tu ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Par défaut
    Merci pour le tuto mais je n'arrive pas à l'intégrer voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $insertion = "INSERT INTO materiel VALUES ('' , 'ordinateur');";
    $result = mysql_query($insertion);
    if ($result == TRUE) {
    	echo 'valider les changement dans la base de données';
    }else{
    	echo 'annuler les changement dans la base de données';
    }
    Puis-je avoir un exemple ? merci

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je ne vois rien dans votre code qui reprenne l'exemple de transaction que je vous ai donné.
    Pensez juste bien que mysql_query() traite une seule requete a la fois et donc qu'il faut ecrire chaque instruction de la transaction dans un mysql_query() different.

    Par contre pour suivre la logique de ce que vous avez ecris, dans le cas ou mysql_query() renvoit FALSE, il n'y aurait rien a annuler puisque la requete n'aurait pas été traité.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Par défaut
    Je ne savais pas que l'on devais recommencer une transaction après chaque requête merci de me l'avoir dit

    Dans mon cas je fais plusieurs insertions et si une se passe mal, j'annule toutes celles déjà faites.

    Je ne vois pas trop comment faire ça avec "mysql_query()" avez-vous une solution niveau code merci.

  6. #6
    Membre très actif
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Par défaut
    J'ajouterai que les transaction seront utilisées quand les requetes SQL se sont executé sans erreur. De plus les transactions seront interressante dans le cas de plusieurs operations atomiques DML
    exemple de transaction bancaire d'un compte A vers un compte B
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    mysql_query("start transaction");
    mysql_query("Soustraire 100 euro du compte A"); // pseudo requete
    mysql_query("Ajouter 100 euro au compte B"); // pseudo requete
    mysq_query("commit"); // enregister les changement
    Le but c'est d'assurer que le transfers d'argent se fasse normalement

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Par défaut
    Merci buggen25 je commence a me rendre compte que les transactions ne sont pas adaptés à mon cas .

    Comment puis-je faire alors pour annuler toutes les insertions que j'ai faites dans la base de données si une à eu un problème ?

    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PDO] PDO/MYSQL: les transactions?
    Par Helfima dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/04/2009, 10h04
  2. MySQL, ses procédures stockées et les transactions
    Par Shogun dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 11/02/2008, 21h19
  3. les Transactions sous interbase
    Par kouraichi35 dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/10/2004, 11h15
  4. [interbase] gerer les transactions
    Par webbulls dans le forum Bases de données
    Réponses: 3
    Dernier message: 14/05/2004, 18h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo