sqlite中,

在使用sql语句写入字符串数据时,

由于字符数据中可能隐含转义字符,
如果对于他们不作处理,执行时,exec函数将不识别,或者造成注入攻击
这个时候sqlite_mprintf(),
应该就是必须使用了,配合‘%q’将字符数据中的转义字符,直接转换,
就不用担心字符串中含有‘单引号,这样造成sql语句不识别的问题。

For example, assume the string variable zText contains text as follows:

char *zText = "It's a happy day!";

One can use this text in an SQL statement as follows:

char *zSQL = sqlite3_mprintf("INSERT INTO table VALUES('%q')", zText);
sqlite3_exec(db, zSQL, 0, 0, 0);
sqlite3_free(zSQL);

Because the %q format string is used, the '\'' character in zText is escaped and the SQL generated is as follows:

INSERT INTO table1 VALUES('It''s a happy day!')

This is correct. Had we used %s instead of %q, the generated SQL would have looked like this:

INSERT INTO table1 VALUES('It's a happy day!')

Sqlite SQL格式化输入函数splite3_mprintf相关推荐

  1. android数据库格式化,正确格式化SQLite SQL语句

    我有一些创建语句,应该在我的Android应用程序中首次创建数据库时运行.它们被格式化为这样:正确格式化SQLite SQL语句 name="uaDBcreates"> CR ...

  2. XamarinSQLite教程下载安装SQLite/SQL Server Compact Toolbox

    XamarinSQLite教程下载安装SQLite/SQL Server Compact Toolbox SQLite/SQL Server Compact Toolbox是一个Visual Stud ...

  3. php sqlite3 sql,在PHP中准备SQLite SQL语句

    我正在尝试如何最好地在PHP中准备我的SQLite SQL字符串. SQLite3类附带了一个escapeString()函数,但这是我的问题: 尝试1) $sql = "INSERT IN ...

  4. react sql格式化_为SQL Server数据库损坏做准备; 初步React与分析

    react sql格式化 Corruption is a looming thought through every administrator's mind, from sysadmins to d ...

  5. ORACLE SQL格式化小数点

    ORACLE SQL格式化小数点 select CONCAT(TO_CHAR(0.00100,'990.999'),'%') as a0 , CONCAT(TO_CHAR(1100,'990.999' ...

  6. SSMS SQL格式化插件-SQL Pretty Printer

    SSMS SQL格式化插件-SQL Pretty Printer SSMS工具对于SQL Server数据库使用者来说很强大,但是美中不足的是它没有SQL格式化美化功能,比较常用的是RedGate的S ...

  7. HHDEBC与其他主流软件SQL格式化功能的对比

    SQL格式化(即SQL美化)是一项非常重要的功能.只有清晰的结构,才能让您更好的优化数据库查询或写入. HHDBCS的SQL格式化功能有着独特的处理方式,可运用于对复杂SQL语句的分析或者是程序代码优 ...

  8. C语言格式化输入函数scanf和sscanf的用法

    scanf和sscanf是C语言中常用的格式化输入函数.常用于从标准输入或者字符串中,按照一定的格式,将输入赋值给变量. int scanf(const char *format, ...) int ...

  9. 【idea】idea配置sql格式化

    idea配置sql格式化 关键字大写 逗号分隔位置

最新文章

  1. 天线巴伦制作和原理_一种基于LTCC技术的新型Marchand巴伦滤波器
  2. 送给程序员:IT大神们的编程名言
  3. 389 find the difference
  4. 对照表 - 用心整理了一批国内省份、城市、县城的对照表,用于匹配,拿走不谢
  5. 项目不能上线,是开发的锅,还是产品的错?
  6. 一文讲清K8s如何改变美团的云基础设施
  7. 打印iphone支持的所有字体
  8. 有图有真相:带你实现当下流行的权限验证
  9. 【Kettle】date类型不能被excel输出
  10. Centos 7 开机提示 Entering emergency mode 解决方法
  11. [luogu] CF128A Statues dfs
  12. 关于java.io.FileNotFoundException: test.txt (系统找不到指定的文件。)的问题解决办法。(相对路径出错)
  13. unity 预编译指令
  14. 2021极术通讯-CSL-YOLO | 超越Tiny-YOLO V4,全新设计轻量化YOLO模型实现边缘实时检测
  15. Joint fully convolutional and graph convolutional networks for weakly-supervised segmentation of
  16. 【从kitti开始自动驾驶】--5. GPS资料发布
  17. Dubbo + Zipkin + Brave 实现全链路追踪
  18. 如何正确注册Tushare
  19. 首发ND_mobile(大牛窝)免授权手机模板-HYBBS模板 带教程
  20. ERP-库存与存货-原料采购单

热门文章

  1. js Array扩展方法
  2. centos 没有nmtui命令_Linux free 命令
  3. MySQL中count(*)用法
  4. 【移植Linux 3.4.2内核之四】修改内核代码支持YAFFS文件系统
  5. jvm的新生代和老年代简介
  6. SecureCRT SSH 语法高亮
  7. vue基础18(vue-cli脚手架项目中组件的使用)
  8. Java IO学习--(五)字节和字符数组
  9. 08-SSH综合案例:前台用户模块:注册页面的前台JS校验
  10. [原创]mybatis中整合ehcache缓存框架的使用