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

Posted

技术标签:

【中文标题】WebSQL - 检查数据库的记录(javascript)【英文标题】:WebSQL - Check database for records (javascript) 【发布时间】:2016-03-07 15:58:07 【问题描述】:

我正在开发一个 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】:

别担心,一切都已解决。如果你想看看我改变了什么,请参见下文。好像它是executesql语句中缺少的数组[]并将renderList(从loginSuccessful更改)调用到executesql语句中。

       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");
           

【讨论】:

以上是关于WebSQL - 检查数据库的记录(javascript)的主要内容,如果未能解决你的问题,请参考以下文章

WebSQL 是不是支持主键?

记录速度 javascript

webSQL

IOS 是不是会在存储容量不足时删除 WebSQL 数据库?

websql 实现即时通讯

如何从 JavaScript 压缩 WebSQL 数据库