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>
   ---
     <a href = "#" onClick = "javascript:getSelectedRow('1')>getValues</a>

データベースからデータを取得しているとき、つまりSELECTクエリで問題が発生しました。値parseInt(val)を受け入れません。条件を「name = 1」として指定すると、条件を受け入れて結果を提供しますが、「name = parseInt(val)」を受け入れず、エラーをスローします。 as'そのような列はありません:val code:1''val'で値を渡す方法を教えてください..よろしくお願いします。

4

3 に答える 3

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

たとえば、valisの場合"10"、これは文字列を構築することになります:

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

クエリが次のように形成されているため、エラーが発生しています

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

どの DB を使用しているかはわかりませんが、理解できる DB はありませんparseInt

あなたができることは、一時という変数を使用し、その値をparseInt(val)一時変数に保存し、クエリを次のようにすることです

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 に答える