gpt4 book ai didi

android - 从 sqlite 运行选择

转载 作者:行者123 更新时间:2023-11-30 04:20:59 24 4
gpt4 key购买 nike

我正在尝试使用 sqllite 运行选择。这是我第一次使用 sqllite,我一遍又一遍地收到这个错误。

function ="添加事件

代码:

public List<Example> getExampleByFunctionList(String function)
{
List<Example> examplelist = new ArrayList<Example>();
String getQuery = "SELECT * FROM " + MySQLiteHelper.TABLE_EXAMPLE+
" where "+ MySQLiteHelper.COLUMN_EXAMPLE_FUNCTION +" = "+""+function+"";
Cursor cursor = database.rawQuery(getQuery, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
Example example = cursorToExample(cursor);
examplelist.add(example);
cursor.moveToNext();
}
cursor.close();
return examplelist;
}

错误:

02-12 12:37:29.218: E/AndroidRuntime(3165): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tutorial/com.tutorial.ManageCalendar}: android.database.sqlite.SQLiteException: near "Events": syntax error: , while compiling: SELECT * FROM example where examplefunction = Adding Events

最佳答案

... +" = '"+function+"'";
^^^ ^^^

你需要在SQL语句中引用字符串文字(不管它们是否包含空格)。

或者使用prepared statements和bind variables,这样对抗SQL注入(inject)要安全得多。
请参阅:How do I use prepared statements in SQlite in Android?

关于android - 从 sqlite 运行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9248917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com