j'ai une colonne appelée vue dans ma table A. Je veux augmenter la colonne de vues comme ceci:valeur d'incrément MySQL de l'attribut - manque parfois
UPDATE A set views = views + 1 WHERE ID = blabla LIMIT 1;
Cela semble être la façon de le faire (?) au moins pour moi. Ou alors j'ai pensé.
On dirait que quand je (de PHP) faire:
$views = get_viewcount($id);
$views++:
save_viewcount($id, $views); //here we just update views with the $views variable
Cela fonctionne toujours. Mais porte la pénalité d'un aller-retour supplémentaire à la DB avec le get_viewcount, puis l'incrémenter en PHP et le renvoyer. Cela fonctionne toujours.
L'instruction SQL ci-dessus "parfois" fonctionne. Je sais - je déteste aussi le mot "parfois" dans la programmation - mais en d'autres termes, je ne peux pas dire QUAND mais parfois ça ne l'incrémente pas quand je le fais en SQL directement en une fois.
Suggestions?
Cela semble étrange.Je m'attendrais en fait à ce que le SQL fonctionne mieux - vous avez des problèmes de concurrence avec le PHP (et si une autre demande d'utilisateur venait entre les lignes 1 et 3?). –
Problème de concurrence concurrente ici. Cela doit être corrigé. – spender