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