2012-06-14 95 views
1

在我的Web應用程序中,我想根據傳遞給函數的值從數據庫檢索數據。我寫了如下的查詢。如何根據傳遞給函數的值從數據庫中獲取數據

<script> 
//Functions to open database and to create, insert data into tables 

getSelectedRow = function(val) 
    { 
     db.transaction(function(transaction) { 
       transaction.executeSql('SELECT * FROM Employ where number = parseInt(val);',[], selectedRowValues, errorHandler); 

     }); 
    }; 
    selectedRowValues = function(transaction,results) 
    { 
     for(var i = 0; i < results.rows.length; i++) 
     { 
      var row = results.rows.item(i); 
      alert(row['number']); 
      alert(row['name']);     
     } 
    }; 
</script> 

在body標籤,

<body> 
    --- 
    <a href = "#" onClick = "javascript:getSelectedRow('1')>getValues</a> 

我在檢索數據庫數據,即,在SELECT查詢了這個問題。它不接受值parseInt(val),如果我將條件作爲'name = 1'它只接受條件並給出結果,但它不接受'name = parseInt(val)'並拋出錯誤因爲「沒有這樣的列:VAL碼:1」 請告訴我如何在「VAL」傳遞價值..提前 謝謝..

+0

[試試這個答案](http://stackoverflow.com/questions/5610333/how-to-query-database-using-javascript) – Shiham

回答

1
'SELECT * FROM Employ where number = ' + parseInt(val, 10) + ';' 

例如,如果val"10"那麼這將結束構建字符串:

"SELECT * FROM Employ where number = 10;" 
+0

非常感謝你Esailija,它的工作,但我把它寫成'SELECT * FROM僱用where數字='+ parseInt(val)+';'並且我沒有傳遞10 – user25

+0

@ user25作爲第二個參數的'10'指定了'parseInt'的基數。例如,'parseInt(「09」,8)=== 0',但'parseInt(「09」,10)=== 9' – Esailija

+0

現在,我明白了 – user25

0

爲您查詢得到形成

錯誤來了
SELECT * FROM Employ where number = parseInt(val); 

我不知道你正在使用哪個數據庫,但沒有DB會理解parseInt

你可以做的是使用一個變量說temp並且parseInt(val)值存儲在臨時變量,並查詢作爲

SELECT * FROM Employ where number = temp; 
0

嘗試以下操作:

<script> 
//Functions to open database and to create, insert data into tables 

getSelectedRow = function(val) 
    { 
     db.transaction(function(transaction) { 
       transaction.executeSql('SELECT * FROM Employ where number = ?;',[parseInt(val)], selectedRowValues, errorHandler); 

     }); 
    }; 
    selectedRowValues = function(transaction,results) 
    { 
     for(var i = 0; i < results.rows.length; i++) 
     { 
      var row = results.rows.item(i); 
      alert(row['number']); 
      alert(row['name']);     
     } 
    }; 
</script> 

你不有權訪問SQL中的JavaScript變量名稱,您必須將值傳遞給數據庫。

相關問題