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

Requêtes MySQL Discussion :

INSERT multi-table ?


Sujet :

Requêtes MySQL

  1. #1
    Invité2
    Invité(e)
    Par défaut INSERT multi-table ?
    Bonjour,

    J'ai des valeurs (récupérées via un formulaire) à insérer dans deux tables reliées par un 'id'

    exemple :

    table content : id, name,content_text_id
    table content_text : id, type,text

    Je voudrais insérer en une seule fois name, type, text.

    c'est possible ?

    Merci.

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Non, il faut faire un INSERT par table.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut
    En plus si tes insertions sont liées, faire appel aux transactions. Si Mysql /Php dans ton appli, PDO te fera du bonheur.

  4. #4
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Effectivement l'utilisation de PDO pour la multi insertion via les transactions est vraiment très attractif.
    J'explique le principe de l'utilisation d'insertion multiple avec ma librairie "transaction avec requete multiple" mais voici un extrait de l'utilisation de PDO.
    C'est pour une suppression mais il faut faire la requête pour une insertion; le principe reste le même.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
    $dbh->beginTransaction();
    $sth = $dbh->exec("DELETE FROM matable1 WHERE id = ".$del");
    $sth = $dbh->exec("DELETE FROM matable2 WHERE parts_id =".$del");
    $dbh->rollBack();
    $dbh = null;
    ?>
    Il existe d'autres méthodes bien entendu
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  5. #5
    Invité2
    Invité(e)
    Par défaut
    Merci pour vos réponses.
    J'ai trouvé une piste dans les cours et tutoriels MySQL.

    Je vais m'en inspirer.

    Ce serait peut-être mieux en requête préparée ?
    Dernière modification par Domi2 ; 24/03/2011 à 13h41.

  6. #6
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Effectivement les requêtes préparées sont beaucoup mieux.
    Une fois bien compris le principe, je vous recommande de lire l'exemple dans la doc officiel pour l'utilisation des transactions.
    http://php.net/manual/fr/pdo.begintransaction.php
    Ça me donne une idée de conception pour la transaction préparée dans ma lib
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  7. #7
    Invité2
    Invité(e)
    Par défaut
    ok, merci pour vos réponses.

Discussions similaires

  1. [Débutant] Insertion multi tables
    Par azamine dans le forum ADO.NET
    Réponses: 2
    Dernier message: 14/04/2013, 10h57
  2. [MySQL] Insertion de données multi-tables
    Par pp_le_moko dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/12/2009, 23h49
  3. Insertion multi-table
    Par keaton7 dans le forum Débuter
    Réponses: 8
    Dernier message: 26/03/2009, 15h55
  4. [SQL] INSERT multi-tables
    Par K_!!! dans le forum Oracle
    Réponses: 3
    Dernier message: 08/06/2006, 23h08
  5. UPDATE multi-tables sous SQL Server
    Par Cybernet dans le forum Langage SQL
    Réponses: 8
    Dernier message: 25/03/2004, 15h34

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