如何在 Sqflite for Flutter 中使用准备好的语句

How to use prepared statements in Sqflite for Flutter

如何在Flutter中使用Sqflite中的prepared statements? 它似乎缺少一些功能,或者它只是完全不同的安排。 目前,我使用的是标准的 rawInsert,但我的字符串有时会破坏查询。

您可以使用问号语法。

db.rawQuery("SELECT * FROM t WHERE c = ?", [myString]);

我正在使用带有 rawInsert 的事务。在此代码中,如果存在现有记录,插入将被忽略。

return await Storage.database.transaction((txn) async {
      await txn.rawInsert('INSERT OR IGNORE INTO $tableName(id, sender_id, recipient_id, message_id, message)' + 'VALUES("$id", "$senderId", "$recipientId", "$messageId", "$message")');
}).catchError((e) {
      throw (e);
});