我正在开发一个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");
}
}
答案 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");
}
}