Mysqli ON DUPLICATE KEY UPDATE syntax error

Résolu

Bonjour,

Dans la table Announcements j'ai créé un index unique comme combinaison de 2 autres index (announcement_id et user_id).
Je ne parviens pas à trouver où est l'erreur de syntaxe dans cette ligne

mysqli_query($db,"INSERT INTO Announcements (`announcement_id`, `user_id`)
VALUES ('$AnnounceID','$UserID')
ON DUPLICATE KEY UPDATE user_id = ".$UserID);	// Ne pas ajouter de record s'il existe déjà

Merci d'avance pour votre aide
Windows / Chrome 127.0.0.0

2 réponses

  1. Contributeur Ambassadeur

    bonjour,

    dans ce cas-là, il est utile de faire:

    $sqlstr="INSERT INTO Announcements (`announcement_id`, `user_id`)
    VALUES ('$AnnounceID','$UserID')
    ON DUPLICATE KEY UPDATE user_id = ".$UserID);
    echo $sqlstr;
    mysqli_query($db,$sqlstr);

    Cela te permet d"obtenir le contenu exact du texte de la requête, et de la tester en phpmyadmin.

    0
    1. Bonne idée, merci : il y avait un quote !

      J'ai ajouté mysqli_real_escape_string : ça fonctionne.

      0
  2. Contributeur Ambassadeur

    Pourquoi utiliser ainsi deux approches différentes pour les deux insertions de la même variable dans la requête?

    0
    1. Pour ne pas avoir de doublon.

      0
    2. Contributeur Ambassadeur
      @Herve_be

      Pourquoi, une fois, insérer la variable dans la chaîne, et, une seconde fois, en concaténer le contenu?

      0