CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[SQL] empêcher double enregistrement

Pseudo supprimé
Pseudo supprimé 23 octobre 2010 à 20:19:49

Bonsoir,

Je fais un système de signalement (un peu comme la demande de banane sur JVC), et je passe un enregistrement avec l'identifiant du présumé coupable et celui du bon délateur :p) ces 2 identifiants faisant office de clé primaire.

id coupable, id balance, motif, date ...

mais pour éviter de faire 2 requêtes : une pour vérifier que la plainte n'existe pas déjà et une pour enregistrer la plainte, j'enregistre directement la plainte, et si elle existe déjà cela provoque une erreur, et je vérifie avec rowCount() si l'enregistrement est bien passé. S'il me retourne 1 c'est bon, sinon je signifie au client qu'il a déjà passé la plainte.

Est-ce une bonne solution ? Car se servir d'une erreur retournée par la base pour éviter de faire le test avant cela ne me semble pas très déontologique ...

merci :)

Thicot
Thicot
Niveau 10
23 octobre 2010 à 23:05:19

Si jamais ça te renvoit une erreur SQL autre qu'une erreur sur une insertion de clé primaire existante, avec ton système, tu le sauras pas. Tu supposes que toutes les erreurs retournées par la base sont dûs à un enregistrement de doublons.. En ce sens, effectivement, ce n'est pas très "déontologique"...

Pseudo supprimé
Pseudo supprimé 24 octobre 2010 à 09:17:14

Oui, je me disais aussi ... mais je pourrai peut être récupérer le message particulier en cas de doublons pour afficher l'afficher, comme ça, ça n'afficherai l'erreur-doublon que si c'est bien cette erreur là :(

deepblue
deepblue
Niveau 16
24 octobre 2010 à 13:09:06

D'un point de vue algorithmique c'est mal, mais si techniquement ça ne te pose pas de problème (tu peux ne pas afficher l'erreur et pouvoir la traiter), alors pourquoi pas.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware