2011-03-17 2 views
0

where 절에 드롭 다운 목록의 월 값을 추가하려고하는데 작동하지 않습니다.SQL 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

'hello'의 값은 무엇입니까? '3' 또는'March'? –

+0

hello에 해당하는 달 또는 문자열 표현 (예 : "januar")이 들어 있습니까? 후자의 경우 문에서 문자열을 인용해야합니다. – MacGucky

+0

우선, 드롭 다운리스트로부터 1 월을 선택하고, 안녕하세요의 가치는 1 월입니다. 하지만 where 절에서 hello가 작동하지 않습니다. 문자열 표현을 포함합니다. 문자열을 어떻게 인용 할 수 있습니까? 그리고 위의 SQL 쿼리가 잘 작동하지 않는 이유는 무엇입니까 ?? – ferhan

답변

3

을 이해할 수있을 것이다, 당신은 작은 따옴표로 값을 포장해야합니다이를 위해

var mySQL = "SELECT SUM(amount1) AS OrderTotal FROM budget1 WHERE month='"+hello+"'"; 

transaction.executeSql(mySQL, [], dataSelectHandler, errorHandler); 

이 작동하려면, 그것은 당신의 month 열 데이터 형식 varchar입니다 가정!

양식 값을 가져 와서 데이터베이스에 대해 바로 실행하는 것처럼 보입니다. 경고 : 이것은 당신에게 거대한 SQL 삽입 취약점을 제공합니다.

+0

많은 도움을 주셔서 감사합니다. 마침내 나는 그 것을 일하게 만들었다. 그리고 정수 값을 추가해야하는 경우 newFeature.OrderTotal에 정수 값이 있으므로 어떻게 동적으로 표시 할 수 있습니까? txt + = ""+ newFeature.OrderTotal + ""; – ferhan

+0

알려 주셔서 감사합니다. 나는 이것을 위해 또 다른 실을 만들었다. http://adackoverflow.com/questions/5342865/adding-integer-value-dynamically-to-table – ferhan

관련 문제