我希望在注册时不要多次使用特定的电子邮件ID。这是我的代码:
if(request.getParameter("btn1")!=null)
{
String unm=request.getParameter("nm");
String em=request.getParameter("email");
String pwd=request.getParameter("pass");
Connect c1=new Connect();
String q="insert into register(name,email,password) values('"+unm+"','"+em+"','"+pwd+"');";
int rs=c1.DMLExecuter(q);
if(rs>0)
%>
<script>
alert("You are registered now. Please login to continue.");
</script>
我该怎么做才能检查电子邮件ID是否被使用了两次?
答案 0 :(得分:1)
确保您的电子邮件字段是唯一的,例如通过相应地调整DDL(这将使数据库确保电子邮件地址是唯一的)。或者,可以将电子邮件字段设为主键:
CREATE TABLE register(
...
EMAIL VARCHAR(50) NOT NULL UNIQUE,
...
)
在代码中,在插入之前,检查该ID的现有电子邮件的数量:
long existingCount = ...
String countQuery = "SELECT COUNT(1) FROM register WHERE email = ?"
使用request.getParameter("email")
的值运行此查询。
结果应该是一个数字,告诉您使用该电子邮件的现有用户的数量。
假设计数已存储在existingCount
变量中:
if(existingCount == 0) {
//Put here the code to insert the new user as shown in your question...
} else {
%>
<script>
alert("You are already registered. Login or choose a different email");
</script>
<%
}
请注意我的sql使用了绑定变量,请使用预备语句