From 4c04e9d352263799b58eeb61e41ff16b8113478a Mon Sep 17 00:00:00 2001 From: pengshiyu <1940607002@qq.com> Date: Fri, 15 Apr 2022 10:25:53 +0800 Subject: [PATCH] fix --- blog/php-basic/index.md | 10 ++-- blog/php-mysql/sql-procedure.md | 102 +++++++++++++++++++++++++++++++- doc/javascript.md | 2 + 3 files changed, 108 insertions(+), 6 deletions(-) diff --git a/blog/php-basic/index.md b/blog/php-basic/index.md index 7eb4eec..607ec40 100644 --- a/blog/php-basic/index.md +++ b/blog/php-basic/index.md @@ -2,15 +2,15 @@ 视频地址:[https://www.bilibili.com/video/BV18x411H7qD](https://www.bilibili.com/video/BV18x411H7qD) -[PHP 基础](blog/php-basic/basic.md) +1. [PHP 基础](blog/php-basic/basic.md) -[PHP 环境配置](blog/php-basic/environment.md) +2. [PHP 环境配置](blog/php-basic/environment.md) -[PHP 变量和常量](blog/php-basic/variable.md) +3. [PHP 变量和常量](blog/php-basic/variable.md) -[PHP 数据类型](blog/php-basic/type.md) +4. [PHP 数据类型](blog/php-basic/type.md) -[PHP 运算符 operator](blog/php-basic/operator.md) +5. [PHP 运算符 operator](blog/php-basic/operator.md) [PHP 流程控制](blog/php-basic/process.md) diff --git a/blog/php-mysql/sql-procedure.md b/blog/php-mysql/sql-procedure.md index 373b735..b6fd330 100644 --- a/blog/php-mysql/sql-procedure.md +++ b/blog/php-mysql/sql-procedure.md @@ -108,4 +108,104 @@ call my_pro2(); drop procedure 过程名; ``` -https://www.bilibili.com/video/BV1Vx411g7uJ?p=74&spm_id_from=pageDriver +## 3、存储过程的形参类型 + +存储过程的参数和函数一样,需要制定其类型 + +但是存储过程对参数还有额外的要求,自己的参数分类 + +- in:(值传递)参数从外部传入,在过程内部使用,可以是直接数据,也可以是保存数据的变量 + +- out:(引用传递)参数在过程中赋值,传入必须是变量,如果有外部数据,会被清空为null + +- inout:(引用传递)数据可以从外部传入过程内部使用,同时内部操作之后,又回将数据返回给外部 + +代码示例 + +```sql +-- 创建3个会话变量 +set @var1 = 1; +set @var2 = 2; +set @var3 = 3; + +-- 查询会话变量 +select @var1, @var2, @var3; ++-------+-------+-------+ +| @var1 | @var2 | @var3 | ++-------+-------+-------+ +| 1 | 2 | 3 | ++-------+-------+-------+ +1 row in set (0.00 sec) + + + +-- 修改语句结束符 +delimiter $$ + +-- 定义过程 +create procedure my_pro3(in a int, out b int, inout c int) +begin + -- 查看传入的3个数据值 + select a, b, c; + -- +------+------+------+ + -- | a | b | c | + -- +------+------+------+ + -- | 1 | NULL | 3 | + -- +------+------+------+ + + -- 修改3个变量值 + set a = 10; + set b = 20; + set c = 30; + + select a, b, c; + -- +------+------+------+ + -- | a | b | c | + -- +------+------+------+ + -- | 10 | 20 | 30 | + -- +------+------+------+ + + -- 查看会话变量 + select @var1, @var2, @var3; + -- +-------+-------+-------+ + -- | @var1 | @var2 | @var3 | + -- +-------+-------+-------+ + -- | 1 | 2 | 3 | + -- +-------+-------+-------+ + + -- 修改会话变量 + set @var1 = 'a'; + set @var2 = 'b'; + set @var3 = 'c'; + + select @var1, @var2, @var3; + -- +-------+-------+-------+ + -- | @var1 | @var2 | @var3 | + -- +-------+-------+-------+ + -- | a | b | c | + -- +-------+-------+-------+ +end +$$ + +delimiter ; + +-- 调用过程 +call my_pro3(@var1, @var2, @var3); + +-- 再次查看会话变量 +mysql> select @var1, @var2, @var3; ++-------+-------+-------+ +| @var1 | @var2 | @var3 | ++-------+-------+-------+ +| a | 20 | 30 | ++-------+-------+-------+ +``` + +分析: + +1、实参传入过程之后,实际上没有改变外部变量的值,而是把值给了形参,out类型不能接收外部变量的值,默认为null + +2、当过程执行到end 的时候,如果是out或inout变量,会将形参的值重新赋值给实参变量 + + +https://www.bilibili.com/video/BV1Vx411g7uJ?p=75&spm_id_from=pageDriver \ No newline at end of file diff --git a/doc/javascript.md b/doc/javascript.md index 959f08f..7896fbf 100644 --- a/doc/javascript.md +++ b/doc/javascript.md @@ -83,6 +83,8 @@ [ScrollReveal](https://scrollrevealjs.org/) +[preactjs](https://preactjs.com/)Fast 3kB alternative to React with the same modern API. + ## CDN [BootCDN](https://www.bootcdn.cn/): 稳定、快速、免费的前端开源项目 CDN 加速服务 -- GitLab