自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (1)
  • 收藏
  • 关注

原创 PHP手册

未定义和unset()的变量都将解析为值nullunset($var...$vars如果在函数中unset()一个,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。如果想在函数中 unset() 一个全局变量,可使用 $GLOBALS 数组来实现。如果在函数中 unset() 一个,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。如果在函数中 unset() 一个,那么在函数内部此静态变量将被销毁。

2023-01-30 14:28:16 406

原创 L02 Laravel 教程 - Web 开发实战进阶 - 笔记

L02 Laravel 教程 - Web 开发实战进阶

2022-08-11 15:19:16 352

原创 laravel - 查询构建器2

查询构造器

2022-08-02 14:57:22 309

原创 laravel数据库: 查询构造器

查询

2022-08-01 09:12:44 678

原创 laravel-实践

实践

2022-07-29 15:19:08 785

原创 laravel

laravel

2022-07-26 10:22:46 257

原创 MySQL 字符串函数

MySQL 字符串函数

2022-07-14 17:19:35 130

原创 钉钉开发文档

钉钉开发文档

2022-07-04 13:50:04 3209

原创 HTML5

HTML5 浏览器支持HTML5 浏览器支持所有浏览器,包括旧的和最新的,对无法识别的元素会作为内联元素自动处理。将 HTML5 元素定义为块元素HTML5 定了 8 个新的 HTML 语义(semantic) 元素。所有这些元素都是 块级 元素。为了能让旧版本的浏览器正确显示这些元素,你可以设置 CSS 的 display 属性值为 block:header, section, footer, aside, nav, main, article, figure { display: b

2022-03-30 11:39:14 432

原创 PHP手册总结

类型简介PHP 支持 10 种原始数据类型四种标量类型:bool(布尔型)int(整型)float(浮点型,也称作 double)string(字符串)四种复合类型:array(数组)object(对象)callable(可调用)iterable(可迭代)两种特殊类型:resource(资源)NULL(无类型)“双精度(double)”类型,实际上和 float 是相同的,由于一些历史的原因,这两个名称同时存在。得到一个易读懂的类型的表达方式,用 getty

2022-01-04 11:44:08 575

原创 MySQL是怎样运行的(六)

第6章 快速查询的秘籍——B+树索引InnoDB数据页的7个组成部分,各个数据页可以组成一个双向链表,每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表,每个数据页都会为存储在内的记录生成一个页目录,通过主键查找某条记录时可以在页目录中使用二分法快速定位到对应的槽,然后再遍历该槽对应分组中的记录即可快速找到指定记录。其中页a、页b、页c...页n这些页可以不再物理结构上相连,只要通过双向链表相关联即可。6.1没有索引时进行查找6.1.1 在一个页中查找 以主键为搜索条..

2021-08-20 11:30:44 75

原创 MySQL是怎样运行的(五)

第5章 盛放记录的大盒子——InnoDB数据页结构5.1不同类型的页简介页是InnoDB管理存储空间的一个基本单位,一个页的大小一般是16KB。InnoDB为不同的目的而设计了许多种不同类型的页。那些存放我们表中记录的那种类型的页,叫做索引页。5.2数据页结构快览数据页这块16KB大小的存储空间可以划分为多个部分,不同部分有不同功能:一个InnoDB数据页的存储空间大致被分成7个部分:名称 中文名 占用空间大小 简单描述 File Header 文..

2021-08-20 09:08:12 133

原创 MySQL是怎样运行的(四)

第4章 从一条记录说起——InnoDB记录存储结构4.1准备工作MySQL服务器上负责对表中数据的读取和写入工作的部分是存储引擎,而服务器又支持不同类型的存储引擎,真实数据在不同的存储引擎中存放的格式一般是不同的4.2InnoDB页简介InnoDB是将表中的数据存储到磁盘上的存储引擎。将数据划分为若干个页,以页作为磁盘和内存之间交互的基本单位,InnoDB中页的大小一般为16KB。也就是在一般情况下,一次最少从磁盘中读取16KB内容到内存中,一次最少把内存中的16KB内容刷新到磁盘4..

2021-08-19 11:26:43 116

原创 MySQL是怎样运行的(三)

第3章 乱码的前世今生——字符集和比较规则 3.1字符集和比较规则3.1.1字符集简介计算机只能存储二进制数据,存储字符串要建立二进制数据映射关系:界定字符范围 将一个字符映射成一个二进制数据的过程也叫做编码,将一个二进制数据映射到一个字符的过程叫做解码抽象出一个字符集的概念来描述某个字符范围的编码规则3.2.2比较规则简介同一种字符集可以有多种比较规则3.2.3一些重要的字符集ASCII字符集 共收录128个字符,包括空格、标点符号、数字、大小写字母和一些不可...

2021-08-18 15:13:12 98

原创 MySQL是怎样运行的(二)

第 2章 MySQL的调控按钮——启动选项和系统变量2.1 启动选项和配置文件2.1.1在命令行上使用选项启动客户端程序时在-h参数后边紧跟服务器的IP地址,这就意味着客户端和服务器之间需要通过TCP/IP网络进行通信。如果在启动服务器程序的时候就禁止客户端使用TCP/IP网络进行通信,可以在启动服务器程序的命令行里添加skip-networking启动选项。如:mysqld --skip-networking其中skip-networking也可以写成skip_networking。.

2021-08-18 09:36:05 227

原创 MySQL是怎样运行的(一)

第0章 楔子——阅读前必看第 1章 装作自己是个小白——初识MySQL 31.1 MySQL的客户端/服务器架构 31.2 MySQL的安装 31.3 启动MySQL服务器程序 51.3.1 在类UNIX系统中启动服务器程序 51.3.2 在Windows系统中启动服务器程序 61.4 启动MySQL客户端程序 71.5 客户端与服务器连接的过程 101.5.1 TCP/IP 101.5.2 命名管道和共享内存 101.5.3 UNIX域套接字 111.6 服务器处理客户端请求 1.

2021-08-17 15:54:22 1799

原创 $_POST、$HTTP_RAW_POST_DATA、php://input

一、$_POST、$HTTP_RAW_POST_DATA、php://input1.HTTP POST请求数据传输方式(1)application/x-www-form-urlencoded原生 form 表单默认方式:application/x-www-form-urlencoded方式提交数据Content-Type:application/x-www-form-urlencodedname=Donald+Duck&city=%E6%9D%AD%E5%B7%9E...

2021-05-24 18:07:00 322

原创 微信公众号--用户管理

七、用户管理1.用户标签管理开发者可以使用用户标签管理的相关接口,实现对公众号的标签进行创建、查询、修改、删除等操作,也可以对用户进行打标签、取消标签等操作。(1)标签管理1. 创建标签一个公众号,最多可以创建100个标签。接口调用请求说明http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/tags/create?access_token=ACCESS_TOKENPOST数据格式:JSON POST数据示例:

2021-05-20 17:32:33 1076

原创 微信公众号--素材管理

六、素材管理1.新增临时素材

2021-05-20 16:32:48 3256

转载 微信公众号--网页授权

五、网页授权如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。关于网页授权回调域名的说明1、在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头;2、授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.c

2021-05-19 17:22:37 3600

原创 微信公众号--订阅通知

四、订阅通知设置订阅功能:服务号可以在图文消息、网页等场景设置订阅功能。 下发条件:用户在前述场景主动订阅后,服务号可通过接口向用户发送订阅通知,如信用卡动账提醒、物流到货通知等。 下发位置:对已关注服务号的用户,通知下发到号内,未关注的下发到服务通知。 跳转能力:可以跳转到公众号图文消息、网页和小程序。 通知类型:分为一次性订阅和长期订阅—— 一次性订阅,指用户订阅一次,服务号可不限时间地下发一条对应的订阅通知; 长期订阅,指用户订阅一次,服务号可长期多次下发通知,长期订阅通知仅向政务民

2021-05-19 16:29:44 6106 2

原创 微信公众号--开始开发

一、开始开发1.接入(1)填写服务器配置(2)验证服务器地址的有效性<?phpnamespace app\index\controller;class Index{ public function index() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"];

2021-05-18 15:33:57 70

原创 模型

模型

2021-05-13 17:10:36 144

原创 ThinkPHP--模型

查询模型中的查询的数据在获取的时候会经过获取器的处理,以及更加对象化的获取方式。模型查询的最佳实践原则是:在模型外部使用静态方法进行查询,内部使用动态方法查询,包括使用数据库的查询构造器。模型的查询始终返回对象实例,但可以和数组一样使用。获取单个数据// 取出主键为1的数据$user = User::get(1);echo $user->name;// 使用查询构造器查询满足条件的数据$user = User::where('name', 'thinkphp')-&gt

2021-04-23 17:16:44 561 1

原创 ThinkPHP--数据库

连接数据库字符串连接的定义格式为:数据库类型://用户名:密码@数据库地址:数据库端口/数据库名#字符集配置文件database.php方法配置Db::connect方法动态配置数据库连接信息* 动态连接数据库的connect方法仅对当次查询有效。Db::connect('db_config1')->table('user')->find();这种方式的动态连接和切换数据库比较方便,经常用于多数据库连接的应用需求。模型类定义<?p

2021-04-22 11:12:45 990

原创 ThinkPHP--基础

主要特性 引入容器和Facade支持 依赖注入完善和支持更多场景 重构的(对象化)路由 支持注解路由 跨域请求支持 配置和路由目录独立 取消系统常量 助手函数增强 类库别名机制 模型和数据库增强 验证类增强 模板引擎改进 支持PSR-3日志规范 中间件支持(V5.1.6+) 支持Swoole/Workerman运行(V5.1.18+) 安装环境要求P

2021-04-21 15:40:18 904

原创 模型--多对多关联

一、关联定义用户和角色就是一种多对多的关系,我们在User模型定义<?phpnamespace app\index\model;use think\Model;class User extends Model { public function roles() { return $this->belongsToMany('Role'); }}、belongsToMany('关联模型','中间表','外键','关联键');

2021-03-05 09:28:24 1290 1

原创 模型--远程一对多

远程一对多关联用于定义有跨表的一对多关系,例如:每个城市有多个用户 每个用户有多个话题 城市和话题之间并无关联一、关联定义直接通过远程一对多关联获取每个城市的多个话题,City模型定义<?phpnamespace app\index\model;use think\Model;class City extends Model { public function topics() { return $this->hasManyTh..

2021-03-05 09:20:44 317 2

原创 模型--一对多关联

关联定义hasMany('关联模型','外键','主键');关联模型(必须):模型名或者模型类名 外键:关联模型外键,默认的外键名规则是当前模型名+_id 主键:当前模型主键,一般自动获取也可以指定传入例如一篇文章可以有多个评论<?phpnamespace app\index\model;use think\Model;class Article extends Model { public function comments() {

2021-03-04 18:04:53 828 1

原创 模型--模型关联

模型关联避免在模型内部使用复杂的join查询和视图查询。一个模型可以定义多个不同的关联,增加不同的关联方法即可推荐关联属性统一使用和数据表的字段命名规范一致,在很多时候系统自动获取关联属性的时候采用的也是。模型方法 关联类型 hasOne 一对一 belongsTo 一对一 hasMany 一对多 hasManyThrough 远程一对多 belongsToMany 多对多 morphMany 多态一对多 morphO

2021-03-04 17:30:39 830 1

原创 模型2

数据集模型的all和select查询方法返回数据集对象think\model\Collection,该对象继承自think\Collection,因此具有数据库的数据集类的所有方法,而且还提供了额外的模型操作方法。基本用法和数组一样,需要注意的是,如果要判断数据集是否为空,不能直接使用empty判断,而必须使用数据集对象的isEmpty方法判断可以使用模型的hidden/visible/append/withAttr方法进行数据集的输出处理$users = User::select(.

2021-03-04 17:10:32 251 1

原创 来拍法服api-pc

1.TP3.2方法函数名称 函数说明 A 函数 实例化控制器 B 函数 执行某个行为 C 函数 用于读取配置信息 D 函数 实例化模型 F 函数 快速缓存设置和存取 G 函数 调试统计 I 函数 安全获取系统输入变量 L 函数 设置和获取语言变量 M 函数 实例化模型(无需定义模型类) N 函数 计数器 R 函数 直接调用控制器的操作方法 S 函数 缓存设置和存取 U 函数

2021-03-04 16:29:12 184

原创 模型

定义一、模型定义<?phpnamespace app\index\model;use think\Model;class User extends Model{}模型会自动对应数据表,模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写模型自动对应的数据表名称都是遵循小写+下划线规范,如果你的表名有大写的情况,必须通过设置模型的table属性。// 开启应用类库后缀 'class_suffix' => tr

2021-03-01 18:43:16 179

原创 数据库

链接数据库一、配置文件database.php文件配置return [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'thinkphp', // 数据库用户名 'username' => 'root', // 数据库密码 'passw

2021-03-01 09:44:28 645

原创 响应

响应输出为了规范和清晰起见,最佳的方式是在控制器最后明确输出类型(毕竟一个确定的请求是有明确的响应输出类型),默认支持的输出类型包括:输出类型 快捷方法 对应Response类 HTML输出 response \think\Response 渲染模板输出 view \think\response\View JSON输出 json \think\response\Json JSONP输出 jsonp \think\respon

2021-03-01 09:22:42 208 1

原创 请求

think\Request类,不需要实例化,通常使用依赖注入think\face\Request类,可应用于模板输出等场合,静态类操作一、请求对象调用构造方法注入

2021-02-26 16:57:59 255

原创 查询优化

一、关联查询优化(1)保证被驱动表的join字段已经被索引(2)left join 时,选择小表作为驱动表,大表作为被驱动表。(3)inner join 时,mysql会自己帮你把小结果集的表选为驱动表。(4)子查询尽量不要放在被驱动表,有可能使用不到索引。二、子查询优化(1)有索引的情况下 :用 inner join 是最好的 其次是 in ,exists最糟糕(2)无索引的情况下用 a.小表驱动大表 因为join 方式需要...

2021-02-24 13:48:03 994

原创 索引优化

索引优化1. 全值匹配2. 最左前缀法则3.不在索引列上做任何操作(计算,函数,类型转换),会导致索引失效4. 存储引擎不能使用索引范围条件右边的列5.使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少select *6.使用 !=和<>,索引失效7.使用is not null,索引失效8.like以通配符开头(%asd...),索引失效9.字符串不加单引号,索引失效10 使用or,索引失效一般性建议1.对于单键索引,尽量选择针对当前qu

2021-02-24 10:12:14 86

原创 性能分析 -- explain

1. id:查询中select子句或操作表的顺序id相同,执行顺序由上到下id不同,越大优先级越高2. select_type:查询类型,主要区别于普通查询、联合查询、子查询、复杂查询SIMPLE:简单的查询PIMARY:查询中包含任何复杂的子部分,最外层标记为PRIMARYDERIVED:在from中包含的子查询被标记为DERIVED(衍生)SUBQUERY:在select或where中包含的子查询UNION:第二个select出现在union之后UNION RESULT:从union.

2021-02-24 09:54:21 82

原创 索引

一简介索引的本质是一种数据结构,可以理解为排好序的快速查找的数据结构优势:提高检索效率,降低I/O成本降低排序成本,减少cpu消耗劣势:占空间降低插入更新数据效率不断维护更新二索引分类主键索引单值索引唯一索引复合索引三索引结构B-TreeB+treefull-text全文索引(也称全文检索)是目前搜索引擎使用的一种关键技术。它能够利用【分词技术】等多种算法智能分析出文本文字中关键词的频率和重要性,然后按照一定的算法规则智能地筛选出我们想

2021-02-23 17:35:10 106

mysql认识数据库和mysql

认识数据库和mysql mysql连接 入门语句 基本增删改查 详解列类型 表的创建与修改 查的5种子语句详解

2018-07-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除