gpt4 book ai didi

javascript - 将 where 子句与 JavaScript 变量一起使用

转载 作者:行者123 更新时间:2023-11-28 11:25:56 25 4
gpt4 key购买 nike

大家好,这是我关于堆栈溢出的第一个问题。我正在开发一个带有phonegap的应用程序,使用webSQL和javascript。在我的应用程序中,有一个登录表单,需要两个输入:用户名和密码。当用户填写这些值并单击“登录”时,将在具有多行的数据库表中检查这些值。为了检查值我正在使用这个查询-

var email=document.getElementById("uname").value;
tx.executeSql('SELECT * FROM USERINF Where Email=email', [], MatchPass, errorCB1);

但是该查询不适用于带有 java 脚本变量的 where 子句。我还尝试了许多语法,例如

where Email=@email
where Email="+email+"

还有很多,但它们都不起作用。

是否可以在 where 子句中使用 JavaScript 变量?如果是,请告诉我怎么做。如果没有,请建议我任何其他方式来完成任务。提前致谢。

这是我完整的Javascript代码

// JavaScript Document
var db=window.openDatabase("CakeViewer", "1.0", "Cake Viewer", 2*1024*1024);

function login()
{

db.transaction(matchcred)

function matchcred(tx)
{
var eml=document.getElementById("uname").value;
tx.executeSql('SELECT * FROM USERINF Where Email=eml', [], MatchPass, errorCB1);
//problem is in above line-- the query is not executed with variable where clause. But it works fine if I use where Email="abc@abc.com"

}


function MatchPass(tx, results)
{
var orgnalPass=results.rows.item(0).Password;
var userinputedPass=document.getElementById("pass");

if(orgnalPass==userinputedPass.value)
{
window.location.href='HomePage.html';
}
else
{
errorCB();
}
}

function errorCB(tx,err)
{
alert("User Name or Password is not valid !");
document.getElementById("uname").value="";
document.getElementById("pass").value="";
}

function errorCB1()
{
alert("Query failed");
}

function errorCB2(tx,err)
{
alert("errorCB2"+err);
}
}

最佳答案

最简单的方法是使用问号 (?) 来指定变量。

例如:

tx.executeSql('SELECT Data from Table Where something = ?', [email], MatchPass, errorCB1);

从左到右解析 ? 并从左到右匹配 [] 之间的变量。

另一个例子:

tx.executeSql('SELECT Data from Table Where email = ? AND username=?', [email, username], MatchPass, errorCB1);

关于javascript - 将 where 子句与 JavaScript 变量一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11790288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com