Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.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中的已准备语句-语法错误(代码1)_Android_Sql - Fatal编程技术网

Android中的已准备语句-语法错误(代码1)

Android中的已准备语句-语法错误(代码1),android,sql,Android,Sql,我遇到了一个SQLite语法异常,我似乎无法理解: Caused by: android.database.sqlite.SQLiteException: near "index": syntax error (code 1): , while compiling: INSERT OR REPLACE INTO messageAttachments(typeId,index,attachmentId,messageId) VALUES (?,?,?,?) 以下代码中会引发此异常: Messa

我遇到了一个SQLite语法异常,我似乎无法理解:

Caused by: android.database.sqlite.SQLiteException: near "index": syntax error (code 1): , while compiling: INSERT OR REPLACE  INTO messageAttachments(typeId,index,attachmentId,messageId) VALUES (?,?,?,?)
以下代码中会引发此异常:

MessageAttachment attachment = message.attachments.get(i);
        ContentValues messageAttachmentValues = new ContentValues();
messageAttachmentValues.put(MESSAGE_ATTACHMENTS_ATTACHMENT_ID, attachment.getId());
messageAttachmentValues.put(MESSAGE_ATTACHMENTS_MESSAGE_ID, message.id);
messageAttachmentValues.put(MESSAGE_ATTACHMENTS_INDEX, i);

switch (attachment.getAttachmentType()) {
    case text:
        messageAttachmentValues.put(MESSAGE_ATTACHMENTS_TYPE_ID, MESSAGE_ATTACHMENT_TYPES_TEXT_ID);
        break;
    case image:
        messageAttachmentValues.put(MESSAGE_ATTACHMENTS_TYPE_ID, MESSAGE_ATTACHMENT_TYPES_IMAGE_ID);
        break;
    case voice:
        messageAttachmentValues.put(MESSAGE_ATTACHMENTS_TYPE_ID, MESSAGE_ATTACHMENT_TYPES_VOICE_ID);
        break;
}

boolean attachmentSuccess = db.insertWithOnConflict(TABLE_MESSAGE_ATTACHMENTS, null, messageAttachmentValues, SQLiteDatabase.CONFLICT_REPLACE) != -1;

感谢您的帮助

索引是一个关键字。使用其他标识符
index
是保留字-您需要将其转义:
…到messageAttachments(typeId,[index],attachmentId…
索引是sqlite中的保留关键字。请尝试使用其他列名。感谢帮助!索引是关键字。使用其他标识符
索引是保留字-您需要将其转义:
…转换为messageAttachments(typeId,[index],attachmentId…
索引是sqlite中的保留关键字。请尝试使用其他列名。感谢帮助!