Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL Prepared Statement

MySQL Prepared Statement 预处理的操作方法

作者:ZachOn1y

预处理语句是一种在数据库管理系统中使用的编程概念,用于执行对数据库进行操作的 SQL 语句,这篇文章主要介绍了MySQL Prepared Statement 预处理 ,需要的朋友可以参考下

预处理语句(Prepared Statement) 是一种在数据库管理系统中使用的编程概念,用于执行对数据库进行操作的 SQL 语句。

使用预处理语句的具体方式和语法依赖于所用的编程语言和数据库管理系统。常见的编程语言如 Java、PHP、Python 和 C# 都提供了对预处理语句的支持。

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

文本协议具有严重的性能影响。为解决此问题,自4.1版本后,MySQL添加了一项新特性—— prepared statement

prepared statement 利用 client/server binary protocol ,它将包含占位符(?)的查询语句发送到MySQL服务器:

SELECT column_list FROM products
WHERE productcode = ?;

当 MySQL 使用不同的 productcode 值 执行此查询时,它不必完全解析查询。这有助于MySQL更快地执行查询,提升程序的性能,特别是当MySQL多次执行相同的查询时。

由于预处理语句使用占位符(?),这有助于避免许多SQL注入的变体,使应用程序更安全。

预处理语句的基本思想是将 SQL 语句和参数分离开来。在执行之前,数据库管理系统会先解析并编译预处理语句,然后将其保存在预处理语句的执行计划中。

当应用程序需要执行相同或类似的 SQL 语句时,只需要对参数进行修改,而不必重新解析和编译整个 SQL 语句,从而提高执行效率。

使用步骤

使用预处理语句通常需要以下几个步骤:

用法

![[Pasted image 20231010205950.png]]

使用 预处理语句 需要如下三个语句:

-- 示例
'''step 1'''
PREPARE stmt1 FROM 
	'SELECT 
   	    productCode, 
            productName 
	FROM products
        WHERE productCode = ?';
'''step 2 
   声明一个变量 pc,代表productcode并为其赋值'''
SET @pc = 'S10_1678';
'''step 3
   EXECUTE'''
EXECUTE stmt1 USING @pc;
'''step 4
   为变量 pc 分配另一个product code'''
SET @pc = 'S12_1099';
'''step 5
   EXECUTE with the new product code'''
   EXECUTE stmt1 USING @pc;
'''step 6
   release the prepared statement'''
   DEALLOCATE PREPARE stmt1;

优点

到此这篇关于MySQL Prepared Statement 预处理 的文章就介绍到这了,更多相关MySQL Prepared Statement 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文