我有一个这样的字符串:
string query;
query = "insert or replace into TABLEA (a,b,c) values (@a,\"@b\",\"@c\");";
这样我就可以通过简单的替换将字符串插入到 B 和 C 中:
string instring("I have a 3\" gauge");
string instring2("I am looking for 1/8\" thickness");
Replace(&query, "@a", to_string(1));
Replace(&query, "@b", instring);
Replace(&query, "@c", instring2);
所以现在我的查询字符串是:
"insert or replace into TABLEA (a,b,c) values (1,\"I have a 3\" gauge\",\"I am looking for 1/8\" thickness\");";
SQLITE3 得到它,它看起来像:
insert or replace into TABLEA (a,b,c) values (1,"I have a 3" gauge","I am looking for 1/8" thickness");
问题是字符串过早结束。我试图添加额外的转义字符,但这似乎也不起作用。
现在我正在使用 sqlite3_exec() 来执行所有操作。还有什么我应该做的吗?准备好的声明是否处理我正在尝试做的事情?
我应该用prepared_v2试试,这可能会解决问题吗?
我应该如何处理这个?