一、存储过程:

优点:只要传很少的数据到数据库就可以了   缺点:dba管理数据库的时候可能会对数据库进行了更改了那一坨sql语句。

二、创建存储过程:

1、简单

创建存储过程:

Python中使用结果集:

 #
import pymysql #查
conn = pymysql.connect(host="localhost",user='root',password='',database="db5",charset='utf8')
#游标
cursor = conn.cursor()
#连接数据库成功 10 #执行存储过程
11 cursor.callproc('p1')
conn.commit() #获取结果集
result = cursor.fetchall()
print(result) #关闭数据库
cursor.close()
conn.close()

2,传参数:(in,out,inout三个关键字)

创建存储过程:

直接在mysql数据库中调用并传参:

python中调用并传参:

 import pymysql

 #查
conn = pymysql.connect(host="localhost",user='root',password='',database="db5",charset='utf8')
#游标
cursor = conn.cursor()
#连接数据库成功 #执行存储过程
cursor.callproc('p2',(12,2))
conn.commit() #获取结果集
result = cursor.fetchall()
print(result) #关闭数据库
cursor.close()
conn.close()

运行结果:

3、参数 out

python中的参数out:

 import pymysql

 #查
conn = pymysql.connect(host="localhost",user='root',password='',database="db5",charset='utf8')
#游标
cursor = conn.cursor()
#连接数据库成功 #执行存储过程
cursor.callproc('p3',(12,2))
#获取结果集
r1 = cursor.fetchall()
print(r1) 16 #拿存储过程out回来的结果集
17 #@_p3_0表示查询p3的第个参数,@_p3_1表示第二个参数
18 cursor.execute('select @_p3_0,@_p3_1')
19 #获取结果集
20 r2 = cursor.fetchall()
21 print(r2) #关闭数据库
cursor.close()
conn.close()

4,参数inout:inout即能往里面传值也能往外面传值

比如 out n2 int;set @v1=10;给n2传了一个值10,假设有print的时候(没有print),当print (n2)的时候是没有值的,而intout n2 int的时候print (n2)是有值的。

5,事务(其中一个出错就回滚到原来的状态)

例1:

6,游标(不常用,银行中的数据要进行分门别类进行计算的时候才要用到游标,能不用游标就不用游标)

7,动态执行sql(防sql注入)

三、总结:

为什么有结果集又有out伪造的返回值?

Python--day46--mysql存储过程(不常用)(包含防sql注入)的更多相关文章

  1. mysql存储过程及常用函数

    原文:mysql存储过程及常用函数 一.函数 1.数学函数 CEIL()进一取整 SELECT CEIL(1.2);2 FLOOR()舍一取整 SELECT FLOOR(1.9);9 MOD取余数(取 ...

  2. Python 执行 mysql 存储过程

    mysql 创建简单的临时表 tmp create database test; use test; DROP TABLE IF EXISTS `tmp`; CREATE TABLE `tmp` ( ...

  3. mysql之数据库连接的方法封装及防sql注入

    一.定义数据库和表 create database animal; CREATE TABLE `pet` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name ...

  4. 【荐】PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

    我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特 ...

  5. PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

    我们都知道,只要合理正确使用PDO(PDO一是PHP数据对象(PHP Data Object)的缩写),可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_ ...

  6. 防SQL注入:生成参数化的通用分页查询语句

    原文:防SQL注入:生成参数化的通用分页查询语句 前些时间看了玉开兄的“如此高效通用的分页存储过程是带有sql注入漏洞的”这篇文章,才突然想起某个项目也是使用了累似的通用分页存储过程.使用这种通用的存 ...

  7. 回头探索JDBC及PreparedStatement防SQL注入原理

    概述 JDBC在我们学习J2EE的时候已经接触到了,但是仅是照搬步骤书写,其中的PreparedStatement防sql注入原理也是一知半解,然后就想回头查资料及敲测试代码探索一下.再有就是我们在项 ...

  8. golang 防SQL注入 基于反射、TAG标记实现的不定参数检查器

    收到一个任务,所有http的handler要对入参检查,防止SQL注入.刚开始笨笨的,打算为所有的结构体写一个方法,后来统计了下,要写几十上百,随着业务增加,以后还会重复这个无脑力的机械劳作.想想就l ...

  9. .Net防sql注入的方法总结

    #防sql注入的常用方法: 1.服务端对前端传过来的参数值进行类型验证: 2.服务端执行sql,使用参数化传值,而不要使用sql字符串拼接: 3.服务端对前端传过来的数据进行sql关键词过来与检测: ...

随机推荐

  1. 前端与编译原理——用JS写一个JS解释器

    说起编译原理,印象往往只停留在本科时那些枯燥的课程和晦涩的概念.作为前端开发者,编译原理似乎离我们很远,对它的理解很可能仅仅局限于"抽象语法树(AST)".但这仅仅是个开头而已.编 ...

  2. LintCode刷题笔记-- Count1 binary

    标签: 位运算 描述: Count how many 1 in binary representation of a 32-bit integer. 解题思路: 统计一个int型的数的二进制表现形式中 ...

  3. SSM+Maven+IDEA增删改查

    开发工具 IntelliJ IDEA Apache-tomcat-9.0 JDK 1.8 MySQL 8.0.11 Maven 3.5.4 IDEA+Maven搭建项目骨架 1. 新建Maven项目: ...

  4. linux类库之log4j-LogBack-slf4j-commons-logging

    log4j http://commons.apache.org/proper/commons-logging/ http://logging.apache.org/log4j/2.x/ The Com ...

  5. Asterisk 代码架构概述

    from:http://blog.csdn.net/yetyongjin/article/details/7594447 近日分析Asterisk 1.8源码.Asterisk trunk上有这篇架构 ...

  6. Directx11教程(55) 建立球形和锥形物体

    原文:Directx11教程(55) 建立球形和锥形物体 本教程中,我们新建2个model class,SphereModelClass以及CylinderModelClass,分别用来表示球形和锥形 ...

  7. 通过DataWorks数据集成归档日志服务数据至MaxCompute进行离线分析

    通过DataWorks归档日志服务数据至MaxCompute 官方指导文档:https://help.aliyun.com/document_detail/68322.html但是会遇到大家在分区上或 ...

  8. JavaScript —— 给函数参数设置默认值

    一.ES5 function fn(x, y){ y = y || 20; console.log(x, y); } fn(); // undefined 20 fn(5); // 5 20 fn(5 ...

  9. Puppet基础

    基础架构图介绍 自动化运维框架:  自动化监控: puppet介绍 常用的批量工具介绍: OS Provisioning:PXE,Cobbler OS Configuration:ansible,pu ...

  10. 洛谷P3286 [SCOI2014]方伯伯的商场之旅

    题目:洛谷P3286 [SCOI2014]方伯伯的商场之旅 思路 数位DP dalao说这是数位dp水题,果然是我太菜了... 自己是不可能想出来的.这道题在讲课时作为例题,大概听懂了思路,简单复述一 ...