2012-02-18 27 views
10

Android için sqlite'deki bir ham maddeye nasıl girebilirim? Burada g ve s sorguya alınmıyor. Lütfen yol göster.Android SQLite rawquery parametreleri

int g, s; 

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

cevap

34

Tüm parametre yerleri a ile belirtilmelidir. Sorgudaki parametreler her zaman dizgecidir, bu yüzden tamsayılar hakkında özel bir şey yoktur. Bu sizin için çalışması gerekir: Sorgunuzda

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

çoklu düzeylerde Broken ancak sorulan OP sorumsuz ne daha kötü bir çözümü savunan. Lütfen SQL enjeksiyonunu okuyun. –

-3

Parametre dize böylece dizeye bu parametreleri dönüştürmek ve aşağıdaki gibi Sorgunuzla yazınız olması gerekmektedir.

Kullanım String.valueOf();

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

Teşekkür

+2

Bu, sql enjeksiyonlarına izin verir. – Buttink