我必须在sqlite数据库中插入一个字符串我的命令..
Err=sqlite_exec(DB, "create table tbl5(TEXT varchar(100));", xCallback, (void*)"First Test", &ErrMsg);
Err=sqlite_exec(DB, "insert into tbl5 values ('some string');", xCallback, (void*)"First Test", &ErrMsg);
Run Code Online (Sandbox Code Playgroud)
工作正常,但当我想把s="some string"ie
Err=sqlite_exec(DB, "insert into tbl5 values (s);", xCallback, (void*)"First Test", &ErrMsg);
Run Code Online (Sandbox Code Playgroud)
那么这是不行的所以如何添加变量然后它是不工作所以如何在sqlite数据库中插入变量谢谢你
不要使用sprintf()但是sqlite3_mprintf().这是文档.
char s[20] = "some string";
char* query = sqlite3_mprintf("insert into tbl5 values ('%q');", s);
Run Code Online (Sandbox Code Playgroud)
否则您有SQL注入的风险.
应使用释放生成的查询字符串sqlite3_free().
还要注意'%q'而不是通常的'%s'.