Mysqli ON DUPLICATE KEY UPDATE syntax error

Résolu
Herve_be Messages postés 1172 Statut Membre -  
Herve_be Messages postés 1172 Statut Membre -

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

A voir également:

2 réponses

yg_be Messages postés 24281 Statut Contributeur Ambassadeur 1 584
 

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
Herve_be Messages postés 1172 Statut Membre 10
 

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

J'ai ajouté mysqli_real_escape_string : ça fonctionne.

0
yg_be Messages postés 24281 Statut Contributeur Ambassadeur 1 584
 

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

0
Herve_be Messages postés 1172 Statut Membre 10
 

Pour ne pas avoir de doublon.

0
yg_be Messages postés 24281 Statut Contributeur 1 584 > Herve_be Messages postés 1172 Statut Membre
 

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

0