WebSQL - 检查数据库中的记录(javascript)

时间:2016-03-07 15:58:08

标签: javascript sql database sqlite cordova

我正在开发一个phonegap应用程序,并且到目前为止我已经设置了数据库,我的插入和删除功能正常工作。

我现在正在努力用数据库中的数据检查输入值,所以例如现在我只是试图检查是否返回任何行,如果有,那将意味着输入的用户和传递是在数据库,如果没有返回任何行,则user和pass为false。

我没有从sql语句(函数errorCB)中得到任何错误,我也在函数LoginSuccess中放了一个调试警报并且工作正常,但是在删除LoginSuccess函数中的调试警报后,我没有得到提示任何提醒,而页面只是刷新。

我已从代码中移除了删除和插入功能,因为它与此问题相关。

非常感谢任何帮助。

document.addEventListener("deviceready", onDeviceReady, false);

           var db;

             function onDeviceReady() {
              db = window.openDatabase("DBkhan", "1.0", "SFDatabase", 2*1024*1024);
                         db.transaction(createDB, errorCB, successCB);

                     }

            function createDB(tx) {
   tx.executeSql('CREATE TABLE IF NOT EXISTS mahdi (FirstName text, LastName text, Email text, Password text)');

                     }

                     function errorCB(err) {
                         alert("Error processing SQL: "+err.code);
                     }

                     function successCB() {
                  alert("Database Ready");
                     }

 function loginUser()
         {
        db = window.openDatabase("DBkhan", "1.0", "SFDatabase", 2*1024*1024);
        db.transaction(loginDB, errorCB, LoginSuccess);
        }

        function loginDB(tx)
        {
           var Username = document.getElementById("username").value;
         var Password = document.getElementById("password").value;
         tx.executeSql("SELECT * FROM mahdi WHERE FirstName='" + Username + "' AND Password= '" + Password + "'");

         } function LoginSuccess(tx, results) {
           if (results.rows.length > 0) {
           alert ("User and Pass Found");
           }
           else
           {
           alert ("User and Pass incorrect");
           }

}

1 个答案:

答案 0 :(得分:0)

别担心,一切都修好了。如果您想看看我改变了什么,请参阅下文。看起来好像是在executeql语句中缺少array []并且调用renderList(从loginSuccessful更改)到exectutesql statementent。

       function loginDB(tx)
        {
        alert("yep yep yep");
           var Username = document.getElementById("username").value;
         var Password = document.getElementById("password").value;
         tx.executeSql("SELECT * FROM mahdi WHERE FirstName='" + Username + "' AND Password= '" + Password + "'", [], renderList);

         }
           function renderList(tx,results) {
           if (results.rows.length > 0) {
            navigator.notification.alert("User and Pass Found");
           }
           else
           {
           navigator.notification.alert("User and Pass incorrect");
           }

}