2011-04-08 11 views
0

sqllite Dbからいくつかのデータを選択したいとします。今私は問題に直面しています。次のように 私は生のクエリを与える持っている:これはクラッシュであることから、適用を避けるために私を助けることができるSQLiteクエリのエスケープ文字

String MY_QUERY0 = "select * from logs where log_name=\""+log_name.replace("'","\'")+"\""; 

ときのようなデータ

名の

DBから引き出されます。 しかし、私は二重引用符で同じケースを解決する必要があります。

"データ"

のようなデータは事前​​にいずれかの助け.. おかげですることができます。

+1

AndroidのSQLite APIはクエリパラメータをサポートしていますか?もしそうなら、その場でSQLを構築するのではなく、それらを使うべきです。 –

答えて

3

あなたはrawQueryを利用することができます:それはSQLインジェクションを防ぐため

q = "select * from logs where log_name = ?"; 
database.rawQuery(q, new String[] { log_name}); 

これはあなたの引用符の問題を解決するだけでなく、そのもはるかに安全。

+0

ありがとうalot..it作品...あなたは私の日を救った.. :) – rahul

+0

よく聞いてください:-) –