[PHP] Replace into

Résolu
Bonjour,

Je me demandais si le REPLACE INTO ajoutais une occurence dans la BDD ?

Si la syntaxe que j'ai est bonne : REPLACE INTO table (champ) VALUES (nom_du_champ), (nouveau_nom);

Et si ce n'était pas le cas, comment puis-je faire pour remédier à l'erreur suivante : MySQL error 1110: Column 'XXXX' specified twice

Merci de votre aide



By DigsaW_- / Keassad !

4 réponses

  1. Bonjour,

    Ce n'est pas du php mais plutôt du SQL que tu demandes.

    Pour mettre à jour un champ dans une table, ce n'est pas REPLACE mais UPDATE !

    UPDATE table SET colonne1=valeur1, colonne2=valeur2,... WHERE une_colonne=une_value

    Si tu comprends l'anglais, tu trouveras des exemples ici : https://www.w3schools.com/sql/sql_update.asp
    1. pour répondre uniquement à la première question d'après la doc. de MySQL cette instruction fonctionne comme un INSERT si la ligne n'existe pas.

      cf .
      (francais) http://dev.mysql.com/doc/refman/5.0/fr/replace.html
      (anglais avec comm) https://dev.mysql.com/doc/refman/8.0/en/replace.html

      sinon il faut savoir que cette instruction est spécifique MySQL... à manipuler avec précaution (comme l'indique le premier commentaire en anglais si des "ON DELETE CASCADE" sont spécifiés sur la bdd par exemple!)
      1. Et si ce n'était pas le cas, comment puis-je faire pour remédier à l'erreur suivante : MySQL error 1110: Column 'XXXX' specified twice
        c.f boly38 @ http://dev.mysql.com/doc/refman/5.0/fr/replace.html : REPLACE fonctionne exactement comme INSERT
        Regardes bien la fonction d'insert comment on la fait, http://dev.mysql.com/doc/refman/5.0/fr/insert.html tu verra que ta syntaxe est fausse, une piste : les parenthèses...
        1. Merci beaucoup à tous j'ai réussi a régler mon problème !

          Merci pour votre aide et pour ses lien qui m'ont été bien util !