こんにちは、スタック オーバーフローに関する最初の質問です。webSQLとjavascriptを使用して、phonegapでアプリを開発しています。私のアプリには、ユーザー名とパスワードの 2 つの入力を受け取るログイン フォームがあります。ユーザーがこれらの値を入力して [ログイン] をクリックすると、複数の行を持つデータベース テーブルでこれらの値がチェックされます。値を確認するために、このクエリを使用しています-
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変数を使用することは可能ですか?? はいの場合、方法を教えてください。そうでない場合は、タスクを達成するための他の方法を提案してください。前もって感謝します。
これは私の完全な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);
}
}