一、预处理语句介绍

MySQL支持服务端预处理语句,预处理语句利用高效的客户端/服务端二进制协议。用占位符替换参数值的预处理语句有下列两个好处:

每次执行语句时,解析语句的开销更小。通常,数据库应用程序会处理大量相似的语句,只在子句中更改文字或变量值,比如查询和删除的WHERE子句,更新的UPDATE子句,插入的VALUES子句。

防止SQL注入攻击。参数值可以包含非转义的SQL引用以及分隔符号。

你可以通过客户端编程接口使用服务端的预处理语句,比如C编程时使用MySQL C API 客户端库或者MySQL Connector/C。

二、C API中预处理语句执行顺序

为了准备和执行一个语句,应用程序遵循下列步骤:

1.用mysql_stmt_init()函数创建一个预处理语句句柄。为了在服务端准备语句,需要调用mysql_stmt_prepare()并且传递一个包含SQL语句的字符串给它。

2.如果语句会产生一个结果集(a result set),那么调用mysql_stmt_result_metadata()获取结果集的元数据(metadata)。元数据结果集指示结果中有多少列以及包含每一列的相关信息。

3.用mysql_stmt_bind_param()设置每一个参数的值。所有的参数都必须赋值,否则语句执行会返回错误或者产生意想不到的结果。

4.调用mysql_stmt_execute()执行一个语句。

5.如果语句产生一个结果集,调用mysql_stmt_bind_result()绑定数据缓存用来接收每一行的值。

6.重复调用mysql_stmt_fetch()获取每一行的数据存储到绑定的缓存。

7.需要的话重复步骤3到步骤6,通过改变参数值并重新执行语句。

mysql预处理语句_MYSQL 预处理语句相关推荐

  1. mysql set语句_MySQL Prepared语句简介

    之前的MySQL版本4.1,查询以文本格式发送到MySQL服务器. 之后,MySQL服务器使用文本协议将数据返回给客户端.MySQL必须完全解析查询,并将结果集转换为字符串,然后再将其返回给客户端. ...

  2. mysql C where语句_MYSQL WHERE语句优化

    但请注意,下面的优化并不是完全的.MYSQL实施了许多优化,但我没时间全部测试. MySQL的一些优化列在下面: 删除不必要的括号: ((a AND b) AND c OR (((a AND b) A ...

  3. mysql易百_MySQL Replace语句

    在本教程中,您将学习如何使用 MySQL的REPLACE语句来插入或更新数据库表中的数据. MySQL REPLACE语句介绍 MySQL的REPLACE语句是一个MySQL扩展于SQL标准的语句.  ...

  4. mysql update用法_mysql update语句的用法详解

    首先,单表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] ...

  5. mysql更新代码_mysql update语句的用法

    1.    单表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 .. ...

  6. mysql3表查询语句_MySQL基础语句三(多表查询)

    今天让我们来学习mysql的多表查询,爱学习的你就是我的好朋友哦! 多表设计的两种方式:通过id关联(还可以是其他不重复的字段) 通过外键关联 主键: 能够唯一表示数据表中的每个记录的字段或者字段的组 ...

  7. mysql PREPARE用法_mysql prepare语句使用

    每次都看别人的,今天我自己写下来,以后就不用看别人的了 语法 PREPARE statement_name FROM sql_text /*定义*/ EXECUTE statement_name [U ...

  8. mysql预处理 更新_MySQL 预处理方法更新删除-2018年04月27日00时59分

    1.预处理技术,可以将动态变量,从SQL语句中的分离出来,单独操作 2.解决了SQL注入的安全问题 3.预处理操作是通过一个叫预处理对象的工具来操作的: STMT 实例--删除 // 连接数据库 re ...

  9. mysql复杂连接查询语句_MySQL查询语句之复杂查询

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

最新文章

  1. 归纳工作中用到的Linux 命令
  2. vue2 + vue-router + vuex + iview 入门项目
  3. Visual Studio 2013开发 mini-filter driver step by step (4) - 获取文件名
  4. (三) LtRecyclerView v2.x (自定义上拉和下拉刷新View)
  5. leetcood学习笔记-112-路径总和
  6. 前端:分享几个前端素材网站
  7. 技嘉显卡 RGBFusion 不能调光解决方法
  8. mysql webmail ubuntu12.04 imap_如何在Ubuntu 18.04 LTS上安装最新的Roundcube Webmail
  9. python学习(2)
  10. Oracle、mysql产品性能优化总结
  11. 全球及中国铁矿石行业供求状况与投资决策建议报告2022版
  12. python能够设置标签背景色的属性是_Python Pmw EntryField背景色属性
  13. AWS 云产品和云计算基础知识详解
  14. 跳槽入职字节跳动,给到20K16薪,只因比别人更懂多线程与高并发
  15. 机智应对,测试面试套路与反套路,我是不可能中套的......
  16. word 横向合并单元
  17. Java数据库编程(JDBC)-入门笔记
  18. DSPF28335学习笔记
  19. 天梯赛补题:L3-021 神坛 (30 分)
  20. 天嵌TQ2440 ARM开发板Uboot移植

热门文章

  1. VSC/SMC(十三)——快速和非奇异Terminal滑模控制(含程序模型)
  2. nginx篇07-启用HTTP2和TLSv1.3
  3. 贴片制造学习记录:1.锡膏印刷机的使用
  4. Geode 快速入门
  5. Canal使用入门学习
  6. Tomcat启动失败的原因
  7. 计算机里的文案怎么设置背景,win10系统设置浏览器背景的详细方案
  8. pdf文档怎么压缩变小?pdf在线压缩工具分享
  9. 类的构造函数和析构函数
  10. 如新:扎根中国,坚守使命,迈向新未来