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 :

Insertions multiples avec un ON DUPLICATE KEY comment ça marche?


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Par défaut Insertions multiples avec un ON DUPLICATE KEY comment ça marche?
    Bonjour!

    Dans une administration de contenu multilangues, je fais une boucle sur chaque langue et je fais un INSERT à chaque fois...

    Dans un soucis d'optimisation, je me dis qu'il y a moyen de faire ça en une seule requête.

    voici la requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $query_update='INSERT INTO pages_lines_content (id, languageId, pageId, lineId,' . $field . ') 
    VALUES ("", ' . $language['id'] . ',' . (int)$_POST['pageId'] . ',' . (int)$_POST['lineId'] . ',"' 
    .  mysql_real_escape_string($_POST['content_'.$language['ini']]) . '") 
    ON DUPLICATE KEY UPDATE ' . $field . '="' . mysql_real_escape_string($_POST['content_'.$language['ini']]) . '"';
    Maintenant comment construire la requête avec un ON DUPLICATE KEY si je met plusieurs lignes à mettre à jour d'un coup?

    Merci

  2. #2
    Membre chevronné
    Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Par défaut
    Et la structure de la table ?

    ON DUPLICATE KEY, c'est généralement utilisé pour changer la valeur des nouvelles clés primaire lorsqu'elles existent déjà.

  3. #3
    Membre éclairé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Par défaut
    Citation Envoyé par Chengj Voir le message
    Et la structure de la table ?

    ON DUPLICATE KEY, c'est généralement utilisé pour changer la valeur des nouvelles clés primaire lorsqu'elles existent déjà.
    Oui je suis obligé d'utiliser ON DUPLICATE KEY à la fin car il se peut que je rajoute des langues dans mon CMS, et si des articles existaient avant, il faut lorsqu'on les édites, ajoute la nouvelle langue.

    Seulement avec 1 insertion ça marche très bien ma requête, j'aimerais juste savoir comment l'adapter sur plusieurs requête avec le ON DUPLICATE KEY

Discussions similaires

  1. INSERT multiple avec ON DUPLICATE KEY différents
    Par zebulon90 dans le forum Requêtes
    Réponses: 2
    Dernier message: 30/09/2010, 15h09
  2. [Doctrine] insertions multiples
    Par coachbob44 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 02/04/2010, 10h20
  3. Insert multiple avec autoincrement
    Par Le gris dans le forum Requêtes
    Réponses: 2
    Dernier message: 31/08/2009, 15h46
  4. Requête d'insertion multiple avec 1 valeur fixe
    Par [DreaMs] dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/12/2005, 09h28
  5. INSERT multiples avec : rs.AddNew et .Update
    Par M.Zip dans le forum ASP
    Réponses: 4
    Dernier message: 03/12/2004, 15h53

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