如何在android中向sqlite db插入带有单引号的文本?

如何在android中向sqlite db插入带有单引号的文本?,android,string,sqlite,Android,String,Sqlite,我在安卓的sqlite db中插入带有单引号的文本时遇到了一个问题。它返回以下错误 06-21 15:21:55.644: E/AndroidRuntime(16328): android.database.sqlite.SQLiteException: near "re": syntax error (code 1): , while compiling: select * from tbl_chatHistory where chat_date = '1.403344315631E12'

我在安卓的sqlite db中插入带有单引号的文本时遇到了一个问题。它返回以下错误

06-21 15:21:55.644: E/AndroidRuntime(16328): android.database.sqlite.SQLiteException: near
"re": syntax error (code 1): , while compiling: select * from tbl_chatHistory where 
chat_date = '1.403344315631E12' and chat_time = '1.403344315635E12' and chat_text = 
'you're'
请帮忙

******************编辑***************************

public boolean checkChatExists(String date, String time, String chat) {
    boolean result = false;
    String selectQuery = "select * from tbl_chatHistory where chat_date = '"+date+"'
    and chat_time = '"+time+"' and chat_text = '"+chat+"'";
    SQLiteDatabase database = this.getWritableDatabase();
    Cursor cursor = database.rawQuery(selectQuery, null);
    if (cursor.moveToFirst()) {
        result = true;
    } else {
    result = false;
    }
    cursor.close();
    return result;
}

使用“而不是”。问题是,第二个“错误”被认为是文本的结尾

在SQL字符串文本中,您可以将
'
转义为
'

不过,最好使用参数化查询。将字符串文字替换为
,并在
bindArgs
数组中提供值。例如:

String selectQuery = "select * from tbl_chatHistory where chat_date = ? and chat_time = ? and chat_text = ?";
Cursor cursor = database.rawQuery(selectQuery, new String[] { date, time, chat });

发布你的代码。。。并考虑使用<代码>?/COD>参数化查询,而不是易于注入的原始SQL。浮点数作为日期/时间似乎也不是一个好主意。@laalto用代码编辑了这个问题。请帮助。您发布的代码没有问题<基于代码>内容值的方法已经自动使用参数化查询。问题在于
选择
,而不是
插入
@laalto Sorry。我错误地复制了insert方法。现在我已经用select方法编辑了这个问题。哈哈。我正要补充同样的内容。所以,现在是投票表决!