2011-08-05 72 views
-1

我寫一個SQL查詢是這樣的:SQLiteException沒有這樣的列

Cursor data = db.query(WhereWolfOpenHelper.FRIEND_TABLE_NAME, null, WhereWolfOpenHelper.FRIEND_GROUP_COLUMN+"="+params[0], null, null, null, null); 

而且它產生以下錯誤:

ERROR/AndroidRuntime(620): Caused by: android.database.sqlite.SQLiteException: no such column: Friends: , while compiling: SELECT * FROM ww_friend WHERE friend_group=Friends 

沒有列名爲朋友的,我想要檢索的行friend_group列的值爲Friends。我究竟做錯了什麼?

+0

'Friends'應該被引用來說明它的一個字符串值,而不是一個對象名稱 –

+0

你試過周邊'PARAMS [0]'用單引號(')? –

回答

0

需要環繞朋友數值與報價:

Cursor data = db.query(WhereWolfOpenHelper.FRIEND_TABLE_NAME, null, WhereWolfOpenHelper.FRIEND_GROUP_COLUMN+"='"+params[0]+"'", null, null, null, null); 

PS:一定要從PARAM [0]當你做這樣避免SQL注入

+0

感謝它現在的工作(我不能接受,因爲它太快)。感謝關於逃跑的提示。我總是逃避和使用PHP中的參數化查詢,Java/Android中是否有相同的功能? – Pikaling

+0

嗡嗡聲,我不知道一個等效的方法。但它很容易實現。請務必使用引號,並始終用引號括住所有值(整數)。 –

0

我猜逃離危險人物那「朋友」是一個值,所以你必須把它放在引號內。

試試這個:

Cursor data = db.query(WhereWolfOpenHelper.FRIEND_TABLE_NAME, null, WhereWolfOpenHelper.FRIEND_GROUP_COLUMN+"=\""+params[0]+"\"", null, null, null, null); 
相關問題