INSERT IF NOT EXISTS ?

Signaler
Messages postés
51
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
13 avril 2011
-
Messages postés
4
Date d'inscription
jeudi 3 mai 2007
Statut
Membre
Dernière intervention
18 septembre 2010
-
Euh j'aimerais faire un insert s'il n'existe pas parceque si j'insert un user qui existe déja... oups un doublon, si il y a un autre moyen veuillez m'en faire part. :) PS: C'est une form de pour enregistrer le user.

C'est que je fais un login form avec mysql sur mon serveur et si tes info sont dans la table c'est que c'est valide mais bon.

En fait je voudrais savoir si on je peux vérifier si des données sont présents dans la DB et si il est présent il y a un message d'erreur.
A voir également:

9 réponses

Messages postés
51
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
13 avril 2011

Suite (petit oubli): INSERT INTO members IF NOT EXISTS (id,username,password,activated,acnum,email) VALUES ('" & value.ToString & "','" & TextBoxX1.Text & "','" & passwordmd5.ToString & "','false','" & RandomKey.ToString & "','" & TextBoxX3.Text & "')"

ceci est ma commande mysql et bon... le IF NOT EXISTS crée une erreur et je m'y connais pas trop en Mysql
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
salut,

fait ta manoeuvre en 2 fois :

récupère la valeur de "select count(id) as result from membres where username=" & TextBoxX1.Text & ";"

si 0 seulement, tu fais ta 2e requête classique

++
[hr]
Messages postés
51
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
13 avril 2011

Oups petit copié collé a la mauvais place, je vais essayer ton code, merci
Messages postés
51
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
13 avril 2011

Ah oui... euh pourquoi un ";" a la fin ?
Messages postés
51
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
13 avril 2011

myCommand1.CommandText = "select count(id) as result from members where username=" & TextBoxX1.Text & ";"
myCommand1.ExecuteReader()
myCommand.CommandText = "INSERT INTO members (id,username,password,activated,acnum,email) VALUES ('" & value.ToString & "','" & TextBoxX1.Text & "','" & passwordmd5.ToString & "','false','" & RandomKey.ToString & "','" & TextBoxX3.Text & "')"
myCommand.ExecuteNonQuery()

ça c'est mon code et il ajoute sans dire un mot même s'il existe deja
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
15
Salut, le ';' n'est pas obligatoire mais il peux servir dans certains cas, c'est comme si tu disais de valider la ligne, c'est comme un 'Go'


Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Salut
Il te suffit de faire une première requète qui recherche le UserName que tu veux insérer.
Tu exécutes ta requète puis tu comptes le nombre de résultat (RecordCount ?) :
Si 0 : Tu peux lancer une requète INSERT INTO
Si 1 : Tu peux lancer une requète UPDATE
Si 2 et plus : Mauvaise structure de base de données - à revoir puisqu'il n'est pas logique d'avoir plusieurs UserName identiques. UserName devrait-être ta clé primare.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Certains SQL (comme SyBase), il existe une structure de procédure permettant l'usage de "If Exists" :
Exemple simple :
If Exists (Select UserName From Members Where UserName = 'Toto')
  Update Members
     Set Password = 'secret'
   Where UserName = 'Toto'
Else
  Insert Into Members
         (la liste des champs)
  Values (les valeurs)
End
Go
Messages postés
4
Date d'inscription
jeudi 3 mai 2007
Statut
Membre
Dernière intervention
18 septembre 2010

salut

j'ai presque le prob avec INSERT IF NOT EXISTS

connexion1();	
$requet ="insert into chemin ( code_mod, code_cha, code_gran, nommode, chemin, type_phy, ordre, niveau, bloc, num_obj )	values('$codemod','$codechap','$nom','$nommod','$chemin','$type','$position','$niveau','$bloc','$num_obj')";
connexion1();
mysql_query($requet)or die ('echuer');
mysql_close()