Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ SQLite转义字符串c++;_C++_Sql_Sqlite_Escaping - Fatal编程技术网

C++ SQLite转义字符串c++;

C++ SQLite转义字符串c++;,c++,sql,sqlite,escaping,C++,Sql,Sqlite,Escaping,考虑以下代码 char bar[] = "hello world \"One\", two, 'three'"; char *zSQL = sqlite3_mprintf("INSERT INTO stuff (`foo`) VALUES ('%q');", bar ) ; sqlite3_exec(db, zSQL, 0, 0, 0); sqlite3_free(zSQL); /* Produces a exception error */ 问题是SQL语句中没有转义引号。如果我在PHP中

考虑以下代码

char bar[] = "hello world \"One\", two, 'three'";
char *zSQL = sqlite3_mprintf("INSERT INTO stuff (`foo`) VALUES ('%q');", bar ) ; 
sqlite3_exec(db, zSQL, 0, 0, 0);
sqlite3_free(zSQL);
/* Produces a exception error */
问题是SQL语句中没有转义引号。如果我在PHP中编程,我会使用一个函数来在字符串查询中插入字符串,但是在C++中我找不到等价的函数。我可以构建我自己的sqlite\u escape\u类似字符串的函数,但我确信必须有一个已经编写/测试过的函数


是否有一个SqLeTy-ExpEngScript()等价函数用于C++?

< p>你有许多问题所提出的相同问题。没有任何内置的东西


字符串连接的更好解决方案是,这样可以避免转义问题。

否。使用绑定参数

请参阅:


根据文档,
%q
格式字符串应该转义引号。所以正确的问题是,为什么它不起作用?你能发布调用sqlite3\u mprintf的结果吗?@tim,你是对的,有语法错误。为什么不使用std::string bla(szYourstring);bla=bla.替换(“”,“”);char*szharpointer=bla.c_str()@进退两难的是,我不知道还有其他的咒语会在将来引起问题。例如转义字符、不可打印字符等..嗯,这并不总是有效的。例如,创建视图时不能绑定参数。