簡體   English   中英

在JavaScript變量中使用where子句

[英]Using where clause with javascript variable

您好,這是我關於堆棧溢出的第一個問題。 我正在使用webSQL和javascript開發帶有phonegap的應用程序。 在我的應用程序中,有一個登錄表單,其中包含兩個輸入:用戶名和密碼。 當用戶填寫這些值並單擊“登錄”時,將在具有多行的數據庫表中檢查這些值。 為了檢查值,我正在使用此查詢-

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

但是該查詢不適用於帶有Java腳本變量的where子句。 我也嘗試過許多語法,例如

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

還有更多,但都沒有用。

是否可以將JavaScript變量與where子句一起使用? 如果是,請告訴我如何。 如果不是,請建議我其他任何方式來完成任務。 提前致謝。

這是我的完整JavascriptCode

// 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);
tx.executeSql("SELECT * FROM USERINF Where Email='"+email+"'" , 

要在查詢中獲取js變量電子郵件的值,您需要使用+運算符進行串聯。 還要用引號引起來的值,因為值可能是字符串

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM