自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 公众号微信支付,且报“当前url未注册”的问题解决办法

当公众号微信支付,且报“当前url未注册”的问题时候,这里可以明确微信支付配置的授权域名和实际提交的支付地址不一致导致的。

2023-03-17 15:27:04 5412

原创 门户网站页面变灰的悼念形式,快速修改首页变灰

为了纪念一些重要的人物或者事件的时候,互联网上通常会使用首页变灰的方式来作为一种悼念形式。

2022-12-07 09:46:08 240

原创 MVC、MVCS、MVVM、MVP、VIPER等架构模式

在项目开启阶段,其中一个很重要的环节就是选架构。那么面对目前已知的这么多架构模式我们该怎么选择呢?这确实是个很让人头疼的问题!下面我就在这里梳理一下目前常见的一些架构模式。先逐个对它们的分析,然后在从中找到它们的规律,之后就可以以不变应万变,不会再被这些虚头巴脑的名词所迷惑。本篇文章主要从两个维度进行分析:一、任务分配方式二、逻辑分层方式先看一下MVC、MVCS、MVVM、MVP、VIPER架构模式的任务分配方式MVCMVC是最经典的架构模式,它出现的时间非常早,也是最被人所熟知的。MV

2022-07-19 11:41:31 644

原创 分享公司系统项目管理

自从改变了项目流程的管理,项目的研发效率提高了很多、管理实际上也是管人和管事

2022-07-18 17:46:20 181

原创 苹果开发者账号续费提示“支付授权失败”的问题

苹果开发者账号续费失败在我们续费的过程中,当信用卡信息填写完成,点击提交的时候,如果出现失败,并且提示 “支付授权失败”。以下是苹果客服给的回复:实际上只要是自己的信息填写是不会错的,账单信息也不完全是要一样的。就是這个信用卡的问题。很多时候我们误以为带有VISA的信用卡就可以使用,实际上不错误的。这里必须使用银联+VISA或者银联和MasterCard通用标识的卡才可以。最终本人选择了银联+VISA标识的信用卡支付成功解决方案选择对应信用卡:银联+VISA 、银联+MasterCard通用

2021-10-13 15:44:52 2355

原创 PHP处理emoji表情、保存emoji表情,不改变数据库存储类型

不修改数据库存储类型的情况下1、可以通过preg_replace_callback函数单独处理表情加解码方式存储。//接收包含emoji表情的内容传入内容:测试????‍????????‍????返回结果:测试@E8J+RqA==‍@E8J+msQ==@E8J+RqQ==‍@E8J+msg==从结果可以看出一个表情拆分成两个表情组合.这是打印出来的处理过程拆分的表情:????‍????=>???????? / ????‍????=>????????function addEmo

2021-09-01 10:02:54 717

原创 MySQL数据库字段类型使用说明

简介MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。回到顶部数值类型下列用于描述的代码字母中:M表示最大的显示尺寸。最大的合法的显示尺寸是 255 。(注意是显示尺寸是存储数字的位数,不是存储空间大小,数值列创建时,MySQL将为存储数据分配合适大小的空间,从1个字节到8个字节不等)D适用于浮点类型并且指出跟随在十进制小数点后的数的位数。最大可能的值是30,但是应该不大于M-2。方括号(“[”和“]”)指出可选的类型修饰符的部分。注意,如果你指定

2021-07-19 13:48:19 370

转载 mcrypt加密解密弃用后用openssl解决

mcrypt加密try { //获得16位随机字符串,填充到明文之前 $random = $this->getRandomStr(); $text = $random . pack("N", strlen($text)) . $text . $appid; // 网络字节序 $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $module = mcrypt_module_ope

2021-06-18 14:35:38 364

原创 mcrypt弃用,使用openssl_encrypt,接收微信推送的数据进行解密、加密踩坑

一、接收微信服务器的xml加密推送(代码接收xml格式数据)二、对消息进行解密(获取到xml格式数据进行解密)注意:本人使用微信解密DEMO踩过的坑。(1)引入框架中,命名错误,文件名称为小写,类名为大写。调用报错。解决方式:修改文件名称为大写。(2)由于与类同名的方法将不会是构造函数;所以需要单独调用,或者修改为构造方法。修改前:$pc = new WXBizMsgCrypt($token, $encodingAesKey, $appId);修改后:$pc = new WXBizMsg

2021-06-18 10:27:16 417 1

原创 MVC、MVCS、MTV、MVP框架模式

框架模式有哪些?MVC、MVCS、MTV、MVP、等等;MVC框架经典MVC模式中1、模型(Model)M是指业务模型2、视图(View)V是指用户界面3、控制器(Controller )C则是控制器使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。其中,View的定义比较清晰,就是用户界面。具有耦合性低,重用性高、生命周期成本低等优点。MVCS框架分离:MVCS 提供一种将你的应用程序分离到提供特定功能的无关联的层的很自然的方法。1、视图(View)

2021-04-10 15:19:37 745 1

原创 PHP取整数函数 / PHP保留小数

PHP取整数函数 / PHP取整数保留小数常用的几种方法:$num = 5.5615;第一种 直接取整,舍弃小数,保留整数:intval() echo intval($num); 结果:5第二种 四舍五入取整:round() echo round($num); 结果:6第三种 向上取整,有小数就加1:ceil() echo ceil($num); 结果:5第四种 向下取整:floor() echo f

2021-03-28 00:07:51 631

原创 软件产品从开发到用户使用涉及到哪些环境

软件产品从开发到用户使用都涉及哪些环境?开发环境、测试环境、回归环境、预发布环境、生产环境。下面说说我个人对这些环境的理解:1、开发环境顾名思义,开发同学开发时使用的环境,每位开发同学在自己的dev分支上干活,提测前或者开发到一定程度,各位同学会合并代码,进行联调。2、测试环境也就是我们测试同学干活的环境啦,一般会由测试同学自己来部署,然后在此环境进行测试。bug修复后,需要发版更新测试环境来回归bug。3、回归环境回归bug的环境,其实就是我们的测试环境,在测试环境上测试、回归验证bug。

2021-01-22 17:30:20 867

原创 Mysql查询统计按年月日(年、季、月、周、日)

Mysql查询统计:按年、季、月、周、日按年统计交易金额。SELECT sum(goods_fee), YEAR ( FROM_UNIXTIME(create_time, '%Y-%m-%d') )FROM goods_orderWHERE pay_status = 1GROUP BY YEAR ( FROM_UNIXTIME(create_time, '%Y-%m-%d') )按季统计交易金额。SELECT sum(goods_fee), QUARTER (

2021-01-11 10:54:11 1232

原创 php数组排序、二维数组根据某个字段排序/指定多个字段排序/指定某个字段排序

二维数组根据指定某个字段排序、指定多个字段排序按照某一个字段排序$sort = array( 'direction' => 'SORT_ASC', //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序 'field' => 'limit', //需要排序的字段 ); $arrSort = array(); foreach($arr AS $uniqid => $row){ foreach($row AS

2021-01-08 15:41:37 504

原创 递归把数组的所有null值转换为空字符串

在接口的数据返回中,如果我们直接将数据库查询到的字段返回,则可能存在null值,为了前端和APP处理判断,我们需要把null值转换为空字符串,如果需要转成其他也可以简单修改一下代码实现。以下是示例数据和处理代码处理代码/** * 通过递归方式把数组所有值包含null转换为空字符串。 * @param $result * @return array */function null_to_string($result){ if(!empty($result) && is

2020-12-19 17:04:27 1057 2

原创 ShowDoc-工具-RunApi使用教程

一、介绍runapi是一个以接口为核心的开发测试工具(功能上类似一个简化版的postman)。目前有客户端版(推荐,支持win和mac平台)和在线精简版 ,包含接口测试/项目协作等功能。二、客户端版本Windows版Mac版三、数据说明runapi的数据可以生成markdown格式,但不可逆,markdown数据很难再转换回来runapi。所以它无法跟showdoc原有数据互相转换。只是它们可以共用文档浏览/团队协作等功能。同时runapi生成的文档只能在runapi上编辑,不能在showdo

2020-12-17 16:45:48 7714 4

原创 Mysql sql语句分析、Explain详解

一、概况在日常工作中,我们会开启服务器慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句之后,我们需要用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。二、使用explain + SQL语句expain出来的信息有10列,分别是:id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra三、Explain简

2020-12-15 17:21:24 306 1

原创 安装Redis和安装Redis Desktop Manager

一、安装Redis在windows本地搭建redis缓存,添加到本地计算机的服务中,保证每次开机自动启动服务。第一步:下载redis(我的是计算机win10,64位)https://github.com/MicrosoftArchive/redis/releases第二步:解压缩包,拷贝文件夹到计算机指定的磁盘下。第三步:进入安装目录执行命令运行:redis-server.exe redis.windows.conf --maxmemory 200M注意:可以配置全局变量运行。第四步::

2020-12-11 13:37:54 1147

原创 TP6安装单应用和TP6安装多应用

1、TP6安装要求: 1)PHP >= 7.1.0 2)必须使用Composer安装更新TP62、TP6单应用安装(先安装单应用再安装多应用):1)第一次安装,在命令行下面,切换到你的WEB根目录下 面并执行下面的命令:tp是项目文件名称可以修改composer create-project topthink/think tp2)详细安装查看官方文档:https://www.kancloud.cn/manual/thinkphp6_0/10374813、TP6多应用安装:1

2020-12-05 11:22:17 497

原创 git创建分支-git创建本地分支-远程分支使用教程

1、本地创建分支:命令 git branch <分支名称> 例如:git branch fzy2、远程创建分支:命令 git push origin <本地分支名称> :<远程分支名称>例如:git push origin fzy:fzy3、查看分支:本地分支命令:git branch远程分支命令:git branch -r4、切换分支:命令:git checkout <分支名称>例如:git checkout fzy5、合并

2020-11-28 15:51:50 541

原创 分享一个PHP后台极速开源框架FastAdmin

今天给大家分享一个很不错的PHP后台极速开源框架:FastAdminFastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架。本人是使用的过程中体验最好的是强大的一键生成功能,组件功能也是很方便使用,直接安装就可以使用了,非常适合小微企业团队。安装这块也是比较简单的。官方安装文档:https://doc.fastadmin.net/doc/install.html界面也是很合理,颜色可以切换基于Auth验证的权限管理系统支持无限级父子级权限继承,父级的管理员可任意

2020-11-20 18:25:08 1516 1

原创 php 设置允许跨域请求

php 设置允许跨域请求跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。同源策略:是指域名,协议,端口均相同,有任一不相同皆将造成跨域1、在php加载的文件头部加入以下代码即可实现跨域, header('Content-Type: text/html;charset=utf-8'); header('Access-Control-Allow-Origin:*'); // *代表允许任何网址请求 header('Access-Contro

2020-11-18 18:00:44 7136

原创 如何快速导出数据库的数据字段和注释

导出数据库数据字段SELECTTABLE_NAME AS ‘表名’,COLUMN_NAME ‘字段名’,(CASE COLUMN_KEY WHEN ‘PRI’ THEN ‘true’ ELSE ‘’ END) AS ‘主键’ ,(CASE EXTRA WHEN ‘auto_increment’ THEN ‘true’ ELSE ‘’ END) AS ‘自增’ ,DATA_TYPE AS ‘数据类型’,IS_NULLABLE AS ‘是否为空’,COLUMN_DEFAULT AS ‘默认值’,

2020-11-16 17:55:08 1699

原创 mariaDB数据库转移mysql数据库

由于现在mysql处于开源状态,有部分用户已经在使用mariaDB了。但是当原本有mysql数据库的情况下又有mariaDB。怎么把mariaDB数据库的表和数据导入到Mysql数据库里。mariaDB数据库转换mysql 不能直接导出SQL+数据 需要分开用模型导出建表语句和再导出SQL数据,两者的差异参考以下示例。mariaDB导出的SQL对字段使用 " 双引号标识,而mysql则使用 ` 进行标识。mariaDb导出示例CREATE TABLE "gl_activity" ( "act

2020-11-14 09:36:30 1138

原创 JSON json_encode 的中文字符串格式转码问题

使用json_encode数组包含中文保存数据库出现转换为ASCII码字符以下案例$arr = '['修改前10','修改后20']';echo json_encode($arr); 打印结果:"["\u4fee\u6539\u524d10","\u4fee\u6539\u540e20"]"对json_encode增加参数 JSON_UNESCAPED_UNICODE 则可以解决。$arr = '['修改前10','修改后20']';echo json_encode($log

2020-11-13 15:00:12 1160

原创 Redis安装以及使用测试

一、安装前需要查询PHP版本。1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本。2.下载php_igbinary-1.2.1-5.5-ts-vc11-x64.zip,php_redis-2.2.5-5.6-ts-vc11-x64.zip(一定要保证版本的正确性)下载地址:http://windows.php.net/downloads/pecl/snaps/redis/2.2.5/http://windows.php.net/downloads/pecl/releases/

2020-11-12 10:09:43 110

原创 如何在MySQL数据库添加和修改字段以及操作数据库

一》 数据的操作1.登录数据库mysql -u root -p 数据库名称2—创建数据库命令::create database 数据库名 charset utf8;3–打开数据库命令::use 数据库名;4–显示创建数据库的语句命令::show create database 数据库名;5–删除数据库命令::drop database 数据库名;二》 数据表的操作1–核实当前数据库命令::select database(); 或者status;2–创建数据表命令::crea

2020-11-11 16:22:35 499

原创 数据库分库设计、垂直分库、水平分库

1.垂直分库垂直分库是指按照业务将表进行分类,分布到不同的数据库上面,每个库可以放在不同的服务器上,它的核心理念是专库专用。它带来的提升是:1.解决业务层面的耦合,业务清晰2.能对不同业务的数据进行分级管理、维护、监控、扩展等3.高并发场景下,垂直分库一定程度的提升IO、数据库连接数、降低单机硬件资源的瓶颈4.垂直分库通过将表按业务分类,然后分布在不同数据库,并且可以将这些数据库部署在不同服务器上,从而达到多个服务器共同分摊压力的效果,但是依然没有解决单表数据量过大的问题。库1 库2

2020-11-11 09:21:36 1533

原创 ThinkPHP5数据库主从配置一主多从

ThinkPHP 5+数据库主从配置一、主多从配置1.配置文件(可以配置在.env)1)启用分布式数据库后,hostname参数是关键,hostname的个数决定了分布式数据库的数量,默认情况下第一个地址就是主服务器。2)如果主从服务器的下列连接参数一致,只需要设置一个即可,对于不同的参数,可以分别设置。切记要么相同,要么每个都设置。//数据库连接配置‘DB_DEPLOY_TYPE’ => 1, //是否启用分布式‘DB_RW_SEPARATE’ =>

2020-11-10 15:25:36 1319 3

原创 打开Navicat时发现 missing required libmysql_e.dll报错,缺少libmysql_e.dll文件

打开Navicat时发现 missing required libmysql_e.dll报错,缺少libmysql_e.dll文件如图:这种报错,直接下载missing required library libmysq_e.dll文件复制到Navicat安装目录下,重启就ok百度网盘文件地址:链接: https://pan.baidu.com/s/1F4VTtcwbG4IAdO8rdRHFEg提取码: vnjg...

2020-11-09 13:48:50 1566

原创 Mysql数据库表锁 乐观锁

1. 乐观锁(所有用户都可以读取和修改,通过版本控制谁的修改有效)当先执行查询再执行修改的时候出现并发情况,会修改相同数据,导致结果不对。select * from order where id = 1;update order set num = num+1 where id = 1;并发时,同时查出来的num结果为1;修改的时候num都是相同值,一条执行结果为未修改。乐观锁解决方式:在数据库表字段增版本控制 或者直接使用修改时间字段作为参数(时间字段的好处是每次修改成功自动更新修改时间字

2020-11-02 00:32:57 437

原创 数据库分表设计、垂直分表、水平分表

1. 垂直分表1、 原表字段有 C1, C2, C3, C4, C5, C6, C72、 分表后表1字段:C1, C2, C3, C43、 分表后表2字段:C1, C5, C6, C7在执行查询的时候根据C1主键查询2. 水平分表原表字段有 C1, C2, C3, C4, C5, C6, C7分表后表1字段:C1, C2, C3, C4, C5, C6, C7 C1编号从1 -100万分表后表2字段:C1, C2, C3, C4, C5, C6, C7 C1编号从100.0001万

2020-11-01 23:54:30 323

原创 数据库连接报错:1086 - Unknown storage engine ‘InnoDB‘

数据库连接报错:1086 - Unknown storage engine ‘InnoDB’Navicat命令行查询没有InnoDB或者为Support值为NOmysql> show engines;这里说配置文件内的日志大小设置与实际生成的日志大小不一致,在我的本地配置文件my.ini中日志文件的大小设置是innodb_log_file_size = 1024M,根据日志报错实际应该设置成512M,于是我重新设置日志大小,并把所有ib_logfile文件删除,重新启动mysql。再执行命令

2020-10-29 17:49:57 769

空空如也

空空如也

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

TA关注的人

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