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 :

Transaction PDO SQL


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 20
    Par défaut Transaction PDO SQL
    Bonjour
    Besoin de votre aide precieuse
    J'utilise un formulaire pour entrer des données dans ma bdd. Il s'agit de données de commandes, ces données sont enregistrées sur 2 tables différentes.
    Ce que j'aimerai faire c'est faire une transaction afin de m'assurer que mes données soient rentrées correctement dans les 2 tables.
    La première requête ajoute name, adress, phone doivent aller dans la table tbl_order
    ensuite on récupère l'id de ce nouvel enregistrement (order_id) et on passe à la seconde requête qui boucle sur les champs product_id, quantity et ajoute
    order_id, product_id et quantity dans tbl_product.

    Ma requete tbl_order_product
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    if(isset($_POST["product_id"]))
    {
     include('database_connection.php');
     
     for($count = 0; $count < count($_POST["product_id"]); $count++)
     {
      $data = array(
       ':product_id'   => $_POST["product_id"][$count],
       ':quantity'   => $_POST["quantity"][$count]
     
      );
     
      $query = "
       INSERT INTO tbl_order_product
           (product_id, quantity)
           VALUES (:product_id, :quantity)
      ";
     
      $statement = $connect->prepare($query);
     
      $statement->execute($data);
     }
     
     echo 'ok';
    }
    Ma requete pour tbl_order
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    if(isset($_POST["order"]))
    {
     include('database_connection.php');
     
      $data = array(
       ':name'   => $_POST["name"],
       ':adress'   => $_POST["adress"],
       ':phone'   => $_POST["phone"]
      );
     
      $query = "
       INSERT INTO tbl_order
           (name, adress, phone)
           VALUES (:name, :adress, :phone)
      ";
     
      $statement = $connect->prepare($query);
     
      $statement->execute($data);
     
     echo 'ok';
    }
    Merci de votre aide

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Il ya des fonctions pour ça : PDO::beginTransaction, PDO::commit et PDO::rollBack. A lire : PHP - Manual : Transactions et validation automatique (autocommit)

    Mais pour que ça fonctionne, il faut que les 2 opérations soient effectuées dans le même script.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. [PDO] PDO SQL : lire une @variable SQL d'une transaction
    Par mkdir dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/12/2017, 11h31
  2. Réponses: 2
    Dernier message: 27/06/2007, 00h37
  3. Probleme de transaction sous sql 2000
    Par issou dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/12/2006, 15h11
  4. récupérer transaction en sql!!
    Par kimo0147 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 20/06/2006, 12h51

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