Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android数据库错误语法_Android_Sql_Database - Fatal编程技术网

Android数据库错误语法

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

我的问题是

返回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}: 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,如果没有返回数据,则可能是
值不正确,数据库中没有数据,等等。