2 votes

Utilisez la clé primaire pour faire référence à la ligne à mettre à jour.

J'ai une base de données MySQL sur laquelle j'essaie d'exécuter une commande update ou delete :

$query = "UPDATE db SET this='$_POST[f_that]',this2='$_POST[f_that2]' WHERE index='$_POST[f_index]'";

Cela retourne une erreur de syntaxe à chaque fois, indiquant que le problème se situe près de index='#'. Les informations proviennent d'une table, qui comporte des champs d'entrée en ligne avec les valeurs définies dans la base de données (édition en ligne). L'index du formulaire est affiché de cette manière. À l'intérieur de ma base de données, l'index est la clé primaire et s'incrémente automatiquement.

J'ai utilisé print_r() pour afficher $_POST et $query afin de m'assurer que le formulaire index est un numéro (et le bon numéro en l'occurrence), ce qui est le cas.

Y a-t-il une règle qui m'empêche de faire référence uniquement à la clé primaire ?

3voto

Yogesh Suthar Points 19002

index est un mot réservé en mysql, vous ne pouvez pas l'utiliser directement comme nom de colonne, vous devez utiliser ` autour du nom de la colonne pour utiliser ce type de mots réservés.

$query = "UPDATE db SET `this`='$_POST[f_that]',`this2`='$_POST[f_that2]' 
WHERE `index`='$_POST[f_index]'";

0voto

Amir Points 1983

index est un mot réservé, vous devriez le changer ou l'utiliser entre backticks comme ci-dessous

`index`

0voto

Jasper Points 151

Changer le nom de la colonne pour index. Il est traité comme un mot clé dans votre requête.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X