2010-11-03 10 views
1

Je crée une application d'inscription simple sur mon site Web avec la base de données utilisateur. J'utilise PHP et MySQL. Je veux prendre "nom d'utilisateur" et "email". Les deux sont des clés primaires dans ma base de données. Je ne veux évidemment pas la même chose. Comment puis-je fournir des commentaires à l'utilisateur si a) le nom d'utilisateur est déjà pris et b) l'e-mail est déjà utilisé. Je sais que je peux faire une requête sur les deux mais je pensais que cela pourrait être redondant (2 recherches et un insert). Y at-il un moyen de recevoir des commentaires de MySQL si j'essaie d'insérer sur une clé en double. Comme dans, ce qu'il a échoué sur l'insert. Si non, quelle est la meilleure façon/pratique de le faire?Si une clé dupliquée, comment puis-je déterminer quelle clé primaire (multi) l'a déclenchée

Merci à tous.

Répondre

1

Le mieux que vous pouvez faire est d'exécuter le ci-dessous:

$result = mysql_query("insert into yourtable (`username`, `email`) values ('usernamesubmitted','emailsubmitted')"); 
if (!$result) { 
     die('Invalid query: ' . mysql_error()); 
} 

L'hypothèse ici est que la requête d'insertion échouera si l'un des champs à insérer est une clé primaire et est en cours d'duplciated. Dans ce cas .... envoyer un message - le message contiendra l'information maximale que vous pourriez obtenir dans cette situation, vous pouvez alors gérer le cas échéant