gpt4 book ai didi

SQLite 错误 : no such column:

转载 作者:行者123 更新时间:2023-12-03 18:23:49 26 4
gpt4 key购买 nike

我将 Ionic2 与 一起使用SQLite ,我有以下内容:

app.ts

  private createDatabase(): void {
let db: SQLite = new SQLite();
db.openDatabase({
name: "data.db",
location: "default"
}).then(() => {
db.executeSql("CREATE TABLE IF NOT EXISTS chats (_id TEXT PRIMARY KEY, memberIds TEXT, title TEXT, subTitle TEXT, picture TEXT, lastMessageId TEXT, lastMessageCreatedAt DATE)", {}).then((chatData) => {
console.log("chats TABLE CREATED: ", chatData);
db.executeSql("CREATE TABLE IF NOT EXISTS messages (_id TEXT PRIMARY KEY, chatId TEXT, senderId TEXT, ownership TEXT, content TEXT, createdAt DATE, changeDate BOOLEAN, readByReceiver BOOLEAN)", {}).then((messageData) => {
console.log("messages TABLE CREATED: ", messageData);
}, (error) => {
console.error("Unable to execute messages sql", error);
});

}, (error) => {
console.error("Unable to execute chats sql", error);
});
}, (error) => {
console.error("Unable to open database", error);
});
}
}

storageService.ts
        console.log('addMessage: chat '+chat._id);
this.database.executeSql("SELECT * FROM chats where _id = " + chat._id, []).then((data) => {
let chats = [];
if (data.rows.length > 0) {
for (var i = 0; i < data.rows.length; i++) {
this.chats.push({
_id: data.rows.item(i)._id
});
}
}
console.log('addMessage: chats.length = ' + chats.length);

输出

addMessage: chat rSkFGaLgQ554FCCYJ 
ERROR: {"message":"sqlite3_prepare_v2 failure: no such column: rSkFGaLgQ554FCCYJ","code":0}


问题

你知道我为什么会收到错误吗?据我所知,错误所指的列是 _id ,但是当我创建数据库时它确实存在。

最佳答案

您正在使用字符串从数据库中进行选择。该字符串不在引号中,因此它应该是一列。这就是为什么错误说该列不存在,而不是说 _id不存在。

将值用单引号括起来,它将起作用。并确保它不是用户指定的值,否则您将有 SQL 注入(inject)的可能性。使用参数。

关于SQLite 错误 : no such column:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39805003/

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