2012-06-14 61 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变量名称,您必须将值传递给数据库。

相关问题