Logo du forum
 

Forum TTH-News

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [SQL / PL-SQL / SGBD] » Construction d'une requête SQL
Login Mot de passe

2 visiteurs sur ce topic (0 membre(s), 2 invité(s) )


Auteur
Sujet : Construction d'une requête SQL
zorgh
Master
Membre # 7668

 Avatar du membre
Lieu : FRANCE

Messages :
869 (0.15 par jour)


Score :

Message du 25-01-2009 @ 17:36      Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


Bonjour,

Soit la requête suivante :

Code :

INSERT INTO users (login, fullName, email) VALUES ('".$login."', '".$fullName."', '".$email."');



J'aimerai insérer les données utilisateur si et seulement si le login portant le nom toto n'existe pas dans la table.

J'ai essayé :

Code :

INSERT INTO users (login, fullName, email) VALUES ('".$login."', '".$fullName."', '".$email."') on duplicate key update login='toto';



Mais il m'ajoute toujours une ligne d'enregistrement.

Merci bien

[message édité le 25-01-2009 @ 17:37 Par zorgh]
----------
Toshiba M30X-125 Intel Centrino PM 1,7 Ghz - 1 Go DDR - DD 60 Go - 15,4"W TFT - Ati Radeon 9700
- Haut de page -
Ludyka
Membre hyperactif
Membre # 32446

 Avatar du membre
Lieu : Montpellier/Perpignan

Messages :
281 (0.08 par jour)




Message du 25-01-2009 @ 19:13   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Tu peut faire des Procédures stockées ? Si oui je pense que c'est le mieux sans se prendre la tête.

[message édité le 25-01-2009 @ 19:13 Par Ludyka]
----------
- Fixe : I7 920 @2.9 Ghz , Noctua NH-U12P , Gigabyte EX58-UD5 , 6*1 Go 1600 Mhz Corsair XMS3 DHX, Msi HD4870 OC , Antec NeoPower Neo HE 550 , Zalman GS1000

- Haut de page -
Titnam
Diablotin du forum
Membre # 8823

 Avatar du membre
Lieu : London

Messages :
3499 (0.62 par jour)


Score :

Message du 25-01-2009 @ 19:13   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Il ne serait pas plus simple de vérifier avant que le login existe déjà dans la table ? Puis si true on ne fait rien, si false, on ajoute la ligne ?
----------
Microsoft Surface Pro 3 i7 / 8GB / 256GB SSD
iPhone 6S 64BG Gold
Apple Watch Edition ..
iPad Pro and Apple Tv a venir :)
- Haut de page -
zorgh
Master
Membre # 7668

 Avatar du membre
Lieu : FRANCE

Messages :
869 (0.15 par jour)


Score :

Message du 25-01-2009 @ 19:26   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

C'est ce que j'ai fait.
J'ai construit un premier test avec un select.

Une alternative dans la mesure où le login, dans mon environnement, est unique était de poser un identifiant unique sur le champ login avec une gestion des erreurs derrière.
----------
Toshiba M30X-125 Intel Centrino PM 1,7 Ghz - 1 Go DDR - DD 60 Go - 15,4"W TFT - Ati Radeon 9700
- Haut de page -
bEsTiAn
Le fauve du forum
Membre # 6846

 Avatar du membre
Lieu : Neigembos

Messages :
13241 (2.3 par jour)


Score :

Message du 26-01-2009 @ 9:21   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

alter table login set login unique; (verifier la syntaxe)?
sinon, bah ca depend t'es sous quel os...
if [[ `sql select login from users; | grep -c $login` > 0 ]]; exit 1; else insert....
----------
chwi fatigué...
HP 2540p + HP 650g1
puis un iPad 2 (bêêêrk) pour ma fille
- Haut de page -
zorgh
Master
Membre # 7668

 Avatar du membre
Lieu : FRANCE

Messages :
869 (0.15 par jour)


Score :

Message du 26-01-2009 @ 13:05   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Plutôt

Code :

alter table user add unique ('login')



Le développement est sous PHP.
----------
Toshiba M30X-125 Intel Centrino PM 1,7 Ghz - 1 Go DDR - DD 60 Go - 15,4"W TFT - Ati Radeon 9700
- Haut de page -
frednet
Vétéran
Membre # 3998

 Avatar du membre
Lieu : Lat: 49°20'24" Nord Long: 6°22'48" E

Messages :
2063 (0.35 par jour)




Message du 26-01-2009 @ 14:17   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Si tu developpes une appli sous PHP je te recommande fortement phpDoctrine qui permet de definir une couche d'abstraction au dessus de ta base de donnees. Cela permet par exemple d'eviter ce genre de probleme ou tu dois toi meme creer ta requete.

En plus, cela permet d'etre BDD independant :D

@+ Fred

PS: pour ton autre probleme, je reflechis encore mais je suis blinde de taf en ce moment.
- Haut de page -
zorgh
Master
Membre # 7668

 Avatar du membre
Lieu : FRANCE

Messages :
869 (0.15 par jour)


Score :

Message du 26-01-2009 @ 15:23   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Merci frednet pour ces outils.

Mon autre problème me préoccupe davantage compte tenu de la sécurité. Je dois voir demain un développeur web qui pourra peut-être m'apporter quelques précisions et je l'espère une solution.
----------
Toshiba M30X-125 Intel Centrino PM 1,7 Ghz - 1 Go DDR - DD 60 Go - 15,4"W TFT - Ati Radeon 9700
- Haut de page -


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2010

Valid XHTML 1.0 Transitional

Page générée en 0.031 secondes