簡體   English   中英

如何檢查數據庫中是否已存在電子郵件

[英]How to check if the email already exists in database

我試圖通過電子郵件驗證,如果用戶已經注冊,但值總是插入到我的數據庫中,即使數據庫中已經存在該電子郵件也是如此。

router.get('/save',function(req,res){
  var uname = req.query.username;
  var em = req.query.email;
  var passw = req.query.pass;
  var gender = req.query.gender;
  var dob = req.query.date;

  var con = mysql.createConnection({
    host:"localhost",
    user:"root",
    password:"",
    database:"sherrydb"
  });
  con.query('select * from loginn where email= "'+req.query.email+'" ',function(err,row){
    if(err){
      con.query('insert into loginn(name, password, email, gender, date) VALUES("' + uname + '","' + passw + '","' + em + '","' + gender + '","' + dob + '")',
      function(err,rows,fields){   
        console.log(rows);
        res.send("inserted");
    });
  }
  else{
    alert("user already registered");
    return;
  }
  });

  con.end();
});

您只會在出現錯誤時插入,並且在兩種情況下數據庫查詢都不會引發任何錯誤,如果找不到任何結果或找到任何結果。

這些數據庫查詢的結果將是什么-

  • 當數據庫具有該電子郵件的條目時,將返回包含該電子郵件的行數組。
  • 當數據庫沒有該電子郵件的條目時,它將返回一個空數組。

因此,您可以做的是,檢查查詢結果的長度,如果結果長度為0,則可以插入並且大於0。您應該發送“已注冊”響應或類似內容。

router.get('/save',function(req,res){
  var uname = req.query.username;
  var em = req.query.email;
  var passw = req.query.pass;
  var gender = req.query.gender;
  var dob = req.query.date;

  var con = mysql.createConnection({
    host:"localhost",
    user:"root",
    password:"",
    database:"sherrydb"
  });

  con.query('select * from loginn where email="'+em+'" ', (err, result) => {
    if (err) throw err;
    if (result.length>0){
      res.send("user already registered");
    }
    else{
      var conn = mysql.createConnection({
        host:"localhost",
        user:"root",
        password:"",
        database:"sherrydb"
      });
      conn.query('insert into loginn(name, password, email, gender, date) VALUES("' + uname + '","' + passw + '","' + em + '","' + gender + '","' + dob + '")',function(err,rows,fields){
        console.log(rows);
        res.send("inserted");
    });
    conn.end();

    }
  });
  con.end();
  });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM