Javascript和Web sql插入和更新查询不起作用?

时间:2017-05-02 10:17:35

标签: javascript web-sql

我正在开发一个网络应用程序,最初检查用户的电子邮件是否存在,如果它存在意味着,执行更新查询,否则执行插入查询

我的代码

 function checkLocalDB(name,pass,auth){
    db.transaction(function (tx) {
      tx.executeSql('SELECT * FROM loginUsers WHERE user_Name="'+name+'"', [], function (tx, result) {
        dataset = result.rows;
        if(dataset.length > 0){    
            db.transaction(function (tx) {          
              tx.executeSql("UPDATE loginUsers SET authToken=? WHERE id = '2'", [auth]);
            });
        }else{ 
            var query = 'INSERT INTO loginUsers (user_Name , password , authToken) VALUES ("'+name+'" ,"'+pass+'" , "'+auth+'")';
            dbInteract(query);                                
        }
     });
   });
 }

这个功能不起作用,这个怎么了

1 个答案:

答案 0 :(得分:0)

这是一个旧帖子,但是如果其他人遇到类似的问题(我遇到时遇到了这个线程),这是问题所在:

tx.executeSql('SELECT * FROM loginUsers WHERE user_Name =“'+ name +'”',[],函数(tx,结果){

应该是:

tx.executeSql('SELECT * FROM loginUsers WHERE user_Name =?',[名称],函数(tx,结果){

和这一行:

var query ='INSERT INTO loginUsers(user_Name,password,authToken)VALUES(“'+ name +'”,“'+ pass +'”,“'+ auth +'”));

应该是:

var query ='INSERT INTO loginUsers(user_Name,password,authToken)VALUES(?,?,?)',[name,pass,auth];

出于某种原因,他们确实在第二个查询中输入了变量。