Javascript操作SQLite中的函数执行问题

首先是现有的问题描述——
当前流程
我通过Ajax取到一组数据,然后在Ajax的回调函数中,操作SQLite,如果本地数据库中(通过ID查找)没有这组数据,就Insert;如果有,就更新本地数据库里的条目。
存在问题
我的Insert方法是可以正常运行的。但是Update方法就会在实际运行时直接被跳过。
核心代码如下

db.transaction(function(con){
        con.executeSql('SELECT * FROM ' + uname + ' WHERE appid=' + APP_ID,[],function(con,res){
            if(res.rows.length <= 0){//如果有数据
                addData(uname, APP_ID, 1, 0, APP_NAME_CN, ICON_PATH, VERSION, APP_COMPANY, ACTIVITY.toLowerCase());}
            else{//没有数据
                isDown = (res.rows.item(0).isDown == 1);
                sql = 'UPDATE ' + uname + ' SET name = "' + APP_NAME_CN + '",icon = "' + ICON_PATH + '", ver = ' + VERSION + ', comp = "' + APP_COMPANY + '", schemeUrl = "' + ACTIVITY.toLowerCase() + '" WHERE appid = ' + APP_ID;
                db.transaction(function(con1){
                    con1.executeSql(sql,function(con2,res2){
                        alert("!")
                    },function(con3,error3){
                        alert("添加数据出错!")
                    })
                });
//                updateData(uname, APP_ID,APP_NAME_CN, ICON_PATH, VERSION, APP_COMPANY, ACTIVITY.toLowerCase());//这是原有的函数,被我拉到这个文件中了
            }
        })
    });``` 
**另外**
整个项目是用原生代码写的,不能使用框架和其他引用。
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问