INSERT IF NOT EXISTS ?

Razordj Messages postés 51 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 13 avril 2011 - 16 nov. 2009 à 14:10
chems_Dine Messages postés 4 Date d'inscription jeudi 3 mai 2007 Statut Membre Dernière intervention 18 septembre 2010 - 18 sept. 2010 à 19:57
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

Razordj Messages postés 51 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 13 avril 2011
16 nov. 2009 à 14:11
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
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
16 nov. 2009 à 14:22
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]
0
Razordj Messages postés 51 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 13 avril 2011
16 nov. 2009 à 14:23
Oups petit copié collé a la mauvais place, je vais essayer ton code, merci
0
Razordj Messages postés 51 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 13 avril 2011
16 nov. 2009 à 14:24
Ah oui... euh pourquoi un ";" a la fin ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Razordj Messages postés 51 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 13 avril 2011
16 nov. 2009 à 14:34
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
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
16 nov. 2009 à 14:35
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
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 nov. 2009 à 17:48
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)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 nov. 2009 à 17:58
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
0
chems_Dine Messages postés 4 Date d'inscription jeudi 3 mai 2007 Statut Membre Dernière intervention 18 septembre 2010
18 sept. 2010 à 19:57
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()
0
Rejoignez-nous