Maison  >  Article  >  développement back-end  >  Pourquoi ma requête INSERT est-elle exécutée deux fois lors de l'actualisation de la page ?

Pourquoi ma requête INSERT est-elle exécutée deux fois lors de l'actualisation de la page ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-25 20:51:03232parcourir

Why is my INSERT query being executed twice on page refresh?

Duplication de l'insertion de requête lors du chargement de la page

Un utilisateur a rencontré un problème où une requête INSERT était soumise deux fois à la base de données lorsqu'une page était rafraîchi. Cette requête, destinée à enregistrer l'activité des utilisateurs, a été exécutée à l'aide du code suivant :

<code class="sql">$insert_user_activity = mysql_query("INSERT INTO game_activity (user_id,user_full_name,game_id,game_name) values ('$user_id','$full_name','$browser_id','$game_title')");</code>

Root Cause

La cause première du problème réside dans la logique erronée du contrôleur avant. Le contrôleur frontal est chargé de déterminer quelle requête doit être traitée par l’application. Dans ce cas, le contrôleur frontal exécutait le code d'application pour chaque requête effectuée, y compris les requêtes non valides et les appels de ressources. En conséquence, la requête INSERT était exécutée plusieurs fois, ce qui entraînait des insertions en double.

Solution

Pour résoudre ce problème, la logique du contrôleur frontal doit être révisée pour empêcher l'application de s'exécuter pour des requêtes non valides. Cela garantit que les requêtes ne sont exécutées que lorsque cela est approprié, éliminant ainsi la possibilité de fausses insertions.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn