2012-02-18 15 views
10

どうやってintgerをsqliteのアンドロイドのrawqueryに渡すことができますか? ここではgとsをクエリーに入れません。ご案内ください。Android SQLiteのrawqueryパラメータ

int g, s; 

    Cursor cur3 = database2.rawQuery("select max(UnixTimeStamp) from Quote where EmoticonID=%d and SubCategoryID=%d" ,new String [] {g,s}); 

答えて

34

すべてのパラメータの場所は?で指定する必要があります。クエリのパラメータはそれにもかかわらず常に文字列であるため、整数について特別なことはありません。これはあなたのために働く必要があります。

Cursor cur3 = database2.rawQuery("select max(UnixTimeStamp) from Quote where EmoticonID=? and SubCategoryID=?" ,new String [] {String.valueOf(g),String.valueOf(s)}); 
-5
​​3210
+3

、しかし尋ねOPは無責任であるものよりも大幅に悪化ソリューションを提唱。 SQLインジェクションについてお読みください。 –

-3

パラメータクエリでその文字列にこれらのパラメータを変換し、次のようにクエリを記述してください文字列にする必要があります。

使用String.valueOf();

Cursor c = db.rawQuery(SELECT max(UnixTimeStamp) 
         FROM Quote 
         WHERE EmoticonID ='"+d+"' AND SubCategoryID ='"+ s +"'"); 

複数のレベルで壊れたおかげ

+2

これは、SQLインジェクションを可能にします。 – Buttink

関連する問題