如何在c中插入sqlite3中的任何字符串

use*_*757 4 c sqlite

我必须在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数据库中插入变量谢谢你

ere*_*eOn 6

不要使用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'.