MySQL 预处理技术:
1. 减轻服务器压力
2. 防止 sql 注入, 把传递过去的危险字符也只当做参数处理
3. 将 sql 语句强制一分为二: 第一部分为前面相同的命令和结构部分, 第二部分为后面可变的数据部分
基本使用
- prepare sql_1 from "select * from mass_list";
- execute sql_1;
- drop prepare sql_1;
传参:
- prepare sql_2 from "select * from mass_list where id=?";
- set @id=1;
- execute sql_2 using @id;
- prepare sql_3 from "insert into mass_list (mass_name) values(?)";
- set @name='zhang';
- execute sql_3 using @name;
- prepare sql_3 from "insert into mass_list (mass_name,user_email_id) values(?,?),(?,?)";
- set @name='zhang';
- set @id=1;
- execute sql_3 using @name,@id,@name,@id;// 参数按顺序传递
来源: http://www.linuxidc.com/Linux/2018-03/151363.htm