[英]WebSQL - Check database for records (javascript)
我正在開發一個phonegap應用程序,到目前為止,已經設置了我可以正常使用插入和刪除功能的數據庫。
我現在正在努力用數據庫中的數據檢查輸入值,所以例如現在,我只是簡單地嘗試檢查是否返回了任何行,如果有的話,這意味着用戶和輸入的通行證都在數據庫中,如果沒有返回任何行,則用戶和pass為false。
我沒有從sql語句中獲取任何錯誤(函數errorCB),也沒有在函數LoginSuccess中放置調試警報,並且該警報起作用了,但是在LoginSuccess函數中刪除了調試警報之后,我沒有收到任何警報的提示而是刷新頁面。
我已從代碼中刪除了delete和insert函數,因為它與此問題相關。
任何幫助都感激不盡。
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");
}
}
不用擔心,所有問題都已解決。 如果您想了解一下我所發生的變化,請參見下文。 好像是executesql語句中缺少的數組[]一樣,並將renderList(從loginSuccessful更改)調用到exectutesql語句中。
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");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.