我正在尝试将下拉列表中的月份值添加到where子句中,但它不起作用。
如果我从下拉列表中选择1月份,则hello变量应包含该月份。
我能够提取月份并存储在hello变量中,但它不能使用where
子句。任何建议将不胜感激
function tree() {
alert("abc");
var shortName = 'EXPDB';
var version = '';
var displayName = 'EXPENSE Database';
var maxSize = 2*1024*1024; // bytes
EXPDB = window.openDatabase(shortName, version, displayName, maxSize);
EXPDB.transaction(
function (transaction) {
var hello= $('#mchoose').val();//Contains the month value from drop down list
alert("Wass"+hello);
transaction.executeSql("SELECT SUM(amount1) AS OrderTotal FROM budget1 WHERE month= "+hello+" ", [], dataSelectHandler, errorHandler)
}
);
}
答案 0 :(得分:3)
对于非数字值,您必须将值包装在单引号中:
var mySQL = "SELECT SUM(amount1) AS OrderTotal FROM budget1 WHERE month='"+hello+"'";
transaction.executeSql(mySQL, [], dataSelectHandler, errorHandler);
为此,我们假设您的month
列的数据类型为varchar
!
您似乎正在使用表单值并对数据库执行权限。请注意:这会让您面临一个巨大的SQL注入漏洞。