Android数据库错误语法
我的问题是 返回database.rawQuery(“SELECT*FROM”+TABLE_NAME+,其中“+HISTORY_COLUMN_NAME+”=”+pref.getString(“KEY”,null),null) 错误是Android数据库错误语法,android,sql,database,Android,Sql,Database,我的问题是 返回database.rawQuery(“SELECT*FROM”+TABLE_NAME+,其中“+HISTORY_COLUMN_NAME+”=”+pref.getString(“KEY”,null),null) 错误是 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sset.jibin.wakemethere/com.sset.jibin.wakemethere.History}: an
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sset.jibin.wakemethere/com.sset.jibin.wakemethere.History}: android.database.sqlite.SQLiteException: near "=": syntax error (code 1): , while compiling: SELECT * FROM history WHERE name =
使用query()将其修复。您需要转义参数,如下所示:
return database.rawQuery("SELECT * FROM " + TABLE_NAME + " WHERE " + HISTORY_COLUMN_NAME + " = '" + pref.getString("KEY", null) + "'", null);
这将导致一个查询,如SELECT*FROM=''
使用
query()
而不是rawQuery()
,让SDK为您转义参数会更明智。在你的查询中没有什么比query()
更难的了。任何解决方案都会非常有用。首先,不要把你的代码放在js代码片段中,而不是js代码。使用…“=”+pref.getString(“KEY”,null),null)+“代码>@Aspicas,这将是下面的答案,除非没有空格,否则会破坏东西。对,我的答案是正确的;)先生,如果我照你说的做,数据库里没有数据。感谢您的回复。您可以通过日志查看您正在使用的值,甚至可以通过硬代码对其进行测试。上面修复了不正确的SQL,如果没有返回数据,则可能是键
值不正确,数据库中没有数据,等等。