3

在我的 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 code:1'请告诉我如何在'val'中传递值..在此先感谢..

4

3 回答 3

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

例如,如果valis "10"then 这将最终构建字符串:

"SELECT * FROM Employ where number = 10;"
于 2012-06-14T06:47:56.150 回答
1

当您的查询形成为

SELECT * FROM Employ where number = parseInt(val);

我不知道您使用的是哪个数据库,但没有数据库会理解parseInt

您可以做的是使用一个变量说 temp 并将值存储parseInt(val)在 temp 变量中并将查询设为

SELECT * FROM Employ where number = temp;
于 2012-06-14T06:49:56.243 回答
1

尝试以下操作:

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

于 2012-06-14T06:56:34.430 回答