自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Notepad++ 列块模式编辑,替换换行符

一、列块模式编辑: 1、数据准备 2、按住 “Alt + 鼠标左键” 选择需要列块模式编辑的区域,可以看到多了一条竖线 3、之后批量可以添加,修改内容 二、替换换行符 上面说了列块模式的编辑,后续我想把上面多行的数据改成在一行显示,这时需要替换换行符。 1、快捷键 “Ctrl + H”,弹出...

2020-05-24 11:39:46 15 0

原创 PHP中区分0和空

function test() { $a = 0; $b = ''; $c = null; // 区分 0、''、null // 1、方法一 if ($a !== '') { ...

2020-05-24 11:24:21 20 0

原创 MySQL查询重复数据

假设有一个用户表 user,数据如下: 1、查询表中 uid 重复的数据 SELECT id, uid, name FROM USER WHERE uid IN (SELECT uid FROM USER GROUP BY uid HAVING COUNT(uid...

2020-05-16 18:27:02 25 0

原创 Yii2中Console定时任务

项目开发中经常会需要使用到定时任务,YIi2中有一个功能丰富的控制台命令,今天主要介绍一下如何使用控制台命令编写以及运行定时任务。 一、入口文件 和 web 程序 index.php 入口文件一样,控制台命令也有一个入口文件,根目录下的 yii 文件。 可以在入口文件下运行:php yii 二、...

2020-05-16 11:15:50 33 0

原创 PHP设计模式—外观模式

定义: 外观模式(Facade):又叫门面模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 代码实例: 假设实现一个功能需要用到子系统中的四个方法。 /** * Class SubSystemOne */ class SubSyste...

2020-05-04 16:46:29 40 0

原创 PHP设计模式—装饰器模式

定义: 装饰器模式(Decorator):动态的给一个对象添加一些额外的职责,就增加功能来说,装饰器比生成子类更加灵活。 结构: Component:定义一个对象接口,可以给这些对象动态地添加职责。 ConcreteComponent:定义了一个具体的对象,也可以给这个对象添加一些职责。 Dec...

2020-05-04 12:14:16 41 0

原创 YII2中配置MySQL读写分离

在实际开发中,为了服务更好的响应,通常会设置数据库的读写分离,主库负责写入更新等操作,从库负责读操作。 以下是YII2中配置MySQL读写分离,一主多从设置。设置好后,这些从库其中之一将被建立起连接并执行读操作,而主库将被用来执行写操作。 这样的读写分离将通过以下配置自动地完成。 return [...

2020-05-03 15:52:41 55 0

原创 PHP设计模式—组合模式

定义: 组合模式(Composite):将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。当你发现需求中是体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一的使用组合结构中的所有对象时,就应该考虑用组合模式了。 ...

2020-05-03 15:11:20 42 0

原创 MySQL连接查询INNER JOIN、LEFT JOIN、RIGHT JOIN

一、内连接(INNER JOIN) 获取两个表中字段匹配关系的记录,需要两个表都满足条件的数据才会返回。 如下图阴影部分所示区域。 实例: 有一张表table_a,数据如下: 表table_b,数据如下: 内连接SQL(也可以省略INNER,直接用JOIN): SELECT a.aid, a...

2020-05-02 16:32:13 45 0

原创 MySQL事务

一、事务的概念 事务就是一组原子性的SQL查询,或者说一个独立的工作单元。如果数据库引擎能够成功地对数据库应用该组查询的全部语句,那么就执行该组查询。如果其中有任何一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行。也就是说,事务内的语句,要么全部执行成功,要么全部执行失败。 可以通...

2020-05-02 12:08:50 45 0

转载 PHP中根据概率实现随机数

假设有四个选项:a 占 10%,b占 20% ,C占 30% , d 占 40% ,原理就是现获取随机数,然后找区间。 当然了,选项的数量可以任意。目前默认是总和是 100% 。如果需要别的数,修改随机数的范围即可。 这个算法,比较简单,效率也还算高。 $data = [ 'a&...

2020-04-05 14:48:20 51 0

原创 记录一次 SelectPage 的使用

文档地址:https://terryz.gitee.io/selectpage/guide.html

2020-04-05 14:24:08 76 0

原创 YII 中使用 Expression解决查询中带有常量报错的问题

Yii 官方手册关于 Expression 的解释:https://www.yiichina.com/doc/api/2.0/yii-db-expression Expression 表示不需要转义或引用的 DB 表达式。 当表达式对象嵌入到 SQL 语句或片段时, 它将替换为 $expressi...

2020-04-05 14:08:51 76 0

原创 PHP设计模式—原型模式

定义: 原型模式(Prototype):用原型实例指定创建对象的种类,并且通过 clone 这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。目的是使用 clone 对象来减少 new 对象的开销。 原型 clone 有浅复制和深复制: 浅复...

2020-04-05 12:20:45 43 0

原创 PHP设计模式—工厂模式之抽象工厂模式

定义: 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们的具体类。抽象工厂模式主要解决涉及到多个产品系列的问题。 代码实例: 先回顾上一篇中工厂方法模式的例子,该示例以 BloggsCal 和 MegaCal 两种格式管理编码。如果增加更多的编码格式,这种类结构会横向增长...

2020-03-29 13:48:57 50 0

原创 PHP设计模式—工厂模式之工厂方法模式

定义: 工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 代码实例: 这里还是接着上篇简单工厂模式的那个例子,改成工厂方法模式。 1、创建一个抽象类 ApptEncoder /** * 抽象类 * Class ApptEncoder ...

2020-03-22 14:52:31 61 0

原创 PHP设计模式—工厂模式之简单工厂模式

定义: 简单工厂模式:将调用者和创建者分离,实现解耦,调用者直接向工厂请求,通过工厂去选择需要实例化的对象,用一个单独的类来做这个创建实例的过程。 代码实例: 问题:假设一个关于个人事务管理的项目中有许多类型的对象,其中一个是 Appointment 对象,现在需要通过一种称为 BloggsCal...

2020-03-22 13:13:46 45 0

原创 PhpStorm中实现git rebase -i 合并多次提交功能

上篇介绍到使用git bash命令行实现git rebase -i功能,本篇介绍一下使用PhpStorm编辑器如何实现git rebase -i 功能。 1、先选择自己的分支,查看提交日志,复制下需要合并的前一个commit版本号 2、点击鼠标右键,选择"Git->Reposit...

2020-02-29 14:30:04 113 0

原创 git rebase -i 合并多次提交

在实际开发中,经常会需要使用到git合并功能,git rebase可以将多个commit合并成为一个。 这里主要介绍一下git rebase -i命令的使用: 一、使用git bash命令行实现 1、先查看提交日志,选择需要合并的前一个commit版本号 git log 2、使用git reb...

2020-02-29 13:47:39 123 0

原创 PHP中合并数组且key值不变

一般PHP中合并两个数组都会使用array_merge() 例如: $data1 = ['111' => 'aaa', '222' => 'bbb', '333' => '...

2020-02-29 11:14:43 68 0

原创 PHP中根据二维数组中某个字段实现排序

想要实现二维数组中根据某个字段排序,一般可以通过数组循环对比的方式实现。这里介绍一种更简单的方法,直接通过PHP函数实现。 **array_multisort() :可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。**详细介绍可参考PHP手册:https://www.php...

2020-01-18 14:29:39 65 0

原创 PHP中抽象类和接口的区别

抽象类 抽象类无法被实例化,它的作用是为所有继承自它的类定义(或部分实现)接口。 使用 abstract 关键字定义抽象类。 可以像在普通类中那样在抽象类中创建方法和属性,在大多数情况下,一个抽象类至少包含一个抽象方法,抽象方法也是通过 abstract 关键字声明的。抽象方法只有方法声明,没有...

2019-12-21 21:33:22 30 0

原创 Yii2中indexBy()的使用

在项目开发中经常会使用到一些特殊的值作为数组的索引,一般可以先查询出数据后数组循环拼接成所需的格式。不过YII2框架提供了一种更简单的方法indexBy()。 参考Yii文档:https://www.yiichina.com/doc/guide/2.0/db-query-builder 当你在调...

2019-11-23 13:45:15 34 0

原创 YII2中andWhere多个or查询

使用多个or的复杂查询: AND (name=‘张三’) OR (name=‘李四’) OR (name=‘王五’) // AND (`name`='张三') OR (`name`='李四') OR (`name`='王五') $quer...

2019-11-23 13:15:03 90 0

原创 PHP中使用date获取上月最后一天出现的问题

上次做项目时,发现一个问题,这里记录一下: 问题: 在使用date函数获取上一个月最后一天或下个月最后一天时,如果当前日期是31号,获取的数据有问题。 // 2019-12-01 正确应该是 2019-11-30 date('Y-m-d', strtotime('...

2019-11-23 12:37:46 18 0

原创 使用PHP生成并导出CSV文件

CSV文件是以纯文本形式存储的,一般以逗号为分隔符。 这里主要简单介绍下如何导出CSV文件。 一、浏览器导出CSV文件格式 /** * 导出CSV文件 */ function exportCsv() { // 需要导出的内容 $data = [ ['n...

2019-11-17 12:09:56 49 0

转载 MySQL中DISTINCT与GROUP BY计数原理分析

通常,我们要统计一个字段有几种值有两种方法:在语句中使用DISTINCT或者GROUP BY,配合count进行查询。 例如: SELECT count(DISTINCT col) FROM table; SELECT count(1) FROM (SELECT 1 FROM table GROU...

2019-11-17 10:30:31 61 0

原创 如何开启MySQL慢查询日志

一、开启慢查询日志首先需要了解四个参数: slow_query_log # 是否开启慢查询日志,默认OFF,开启则设置为 ON。 slow_query_log_file # 慢查询日志文件存储位置。 log_queries_not_using_indexes # 是否把没有使...

2019-11-10 13:37:34 25 0

原创 PHP使用递归按层级查找数据

今天主要介绍一下使用递归来按层级查找数据。 原理挺简单的,主要是通过父级id一级一级的循环查找子级,使用PHP循环代码也很容易实现,不过如果层级越多,PHP重复代码也越多,这时可以使用递归来实现这功能。 1、首先查出要使用的数据组成一个数组(避免递归里查询数据库,之后根据这个数组组成自己需要的数据...

2019-11-10 11:55:11 26 0

原创 PHP设计模式之单例模式

定义: 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 实现思路: 1、通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法...

2019-10-27 11:10:46 43 0

转载 PHP三种工具pecl pear composer的区别

PEAR PEAR 是“PHP Extension and Application Repository”的缩写,即PHP扩展和应用仓库。 PEAR 将PHP程序开发过程中常用的功能编写成类库,涵盖了页面呈现、数据库访问、文件操作、数据结构、缓存操作、网络协议、WebService 等许多方面,用...

2019-10-20 09:37:39 24 0

原创 Yii2中多表关联查询

准备条件: 1、首先准备两张表: customer(用户表)(id, name) order(订单表)(id, customer_id, price) customer 表和 order 表之间是一对多的关系,通过 customer_id 字段关联。 2、建立相应的模型文件 custom...

2019-09-15 11:52:38 147 0

原创 PHP最新面试题2019

1、字符串"0"在PHP和js中转换为布尔值是false还是true php:false; php 弱语言'0'和0一样; js:true;字符串除了空字符串('')其他都是true(包括' '这种中间有空格的);...

2019-09-14 10:00:39 396 0

原创 Yii2中$model->load($data)一直返回false问题

上次使用$model->load()方法时一直返回false,数据添加不成功,这里记录一下: 出错代码: $data = [ 'name' => 'test', 'phone' => '1...

2019-08-31 09:24:07 319 0

原创 composer中常用命令

一些常用的composer命令: # 显示所有已经安装的包 composer show # 移除指定的依赖包package_name composer remove package_name # 搜索包名为package_name的信息 composer search package_na...

2019-08-31 08:55:21 49 0

原创 PhpSpreadsheet的简单使用

由于PHPExcel已经不再维护,PhpSpreadsheet是PHPExcel的下一个版本。PhpSpreadsheet是一个用纯PHP编写的库,并引入了命名空间,PSR规范等。这里简单介绍下PhpSpreadsheet的导入导出功能。 1、安装 使用composer安装: compo...

2019-08-18 12:15:20 1059 0

原创 js获取select显示的值

html代码: <select id="myid"> <option value ="1">one</option> <option value ="2">two&l...

2019-08-18 09:59:05 58 0

原创 js获取input checkbox的选中值

HTML代码: <form action="/test/action" method="get"> <input type="checkbox" name="myname" value=&...

2019-07-13 11:01:29 289 0

原创 js中获取当前url路径

可以使用 window.location 获取当前页面url。以下是一些简单应用。 <script> $(function(){ // 返回 web 主机的域名,如:http://127.0.0.1:8080/testdemo/test.html?id...

2019-07-13 10:32:39 251 0

原创 js中触发表单提交

html代码: <form action="/test/action" method="get" id="myForm"> <p>First name: <input type="t...

2019-07-13 09:42:08 124 0

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