使用WebSQL的JavaScript登录功能不起作用

时间:2018-07-21 08:13:14

标签: javascript cordova web-sql

我正在尝试使用WebSQL和JavaScript执行登录功能。我编写了一个带有一个参数(email)的函数。该功能应该在数据库中搜索现有的电子邮件,然后应返回一条警报,指出该电子邮件是否存在。

我进一步希望使用该功能来搜索电子邮件的相关密码是否存在,如果存在,则应登录用户,否则应返回一条消息。所有帮助将不胜感激。预先感谢。

function email_exists(email) {
  mydb.transaction(function(transaction) {
    transaction.executeSql("select id from user where email= " + email + " ", [], function(tx, result) {
        alert("email exists");
      },
      function(error) {
        alert("Email does not exist");
      });
  });
}

1 个答案:

答案 0 :(得分:1)

您可以这样做,

function email_exists(email) {
    db.transaction(function (tx) { 
        tx.executeSql(
            'SELECT * FROM user WHERE email=? LIMIT 1',
            [email], 
            function (tx, result) { 
                if(result.rows.length){
                    // user found
                    alert("User found - ", result.rows[0]);
                }
                else {
                    // email does not exists
                    alert("User not found");
                }
            },
            null
        ); 
    });
}

此处要注意的一件事是,您可以使用替代方法(?)避免sql注入,而不是在SQL查询中串联查询参数。

进一步阅读here