- 博客(32)
- 收藏
- 关注
原创 分析MySQL异常:Deadlock found when trying to get lock
2.“事务A”尚未结束时,“事务B”对“数据a”增加更新锁,查询条件是α字段。3.“事务B”加更新锁后,“事务A”更新α字段,则会触发此Deadlock。备注:如果右图不在事物中,则错误会抛在“事务A中”1.“事务A”中,对“数据a”加更新锁。图示:左未“事务A”右为“事务B”
2024-03-06 11:17:08 2738 1
原创 Debian纯净系统安装php常用扩展和程序
mysql扩展、redis扩展、gd扩展、zip扩展、bcmath扩展、opcache扩展、pcntl扩展、mongodb扩展、swoole扩展、sodium扩展、sqlsrv和pdo_sqlsrv扩展等。
2023-08-10 17:18:00 2248
原创 零基础学习windows环境安装Ant Design of Vue
第一步:安装node.js已安装可跳过。官网下载地址:https://nodejs.org/zh-cn/download/安装完成之后,就拥有了npm,一个node.js自带的包管理工具。类似php的composer。第二步:用npm安装yarn已安装可跳过。yarn和npm一样,是一个包管理工具,但速度更快(快很多很多),命令更短(好记)。打开windows自带的powershell工具,执行以下命令:(后面所有命令都在此执行)> npm install -g yarn验证安装
2021-11-03 11:29:31 655
原创 记C#的一些特别的特性
委托:格式:修饰符 delegate 返回值类型 委托名 ( 参数列表 );例子:public delegate void MyDelegate();个人理解,类似js的函数表达式。就是将一个方法的引用。比如:MyDelegate myDelegate = new MyDelegate(Test.SayHello); // Test是一个类,SayHello是它的方法。myDelegate(); // 相当于执行了Test.SayHello();// 相当于js的:var f =
2021-10-14 14:42:43 174
原创 当元素滚动到顶部时,固定在顶部。
当.nav-bar滚动到顶部时,固定在顶部。var pos = $('.nav-bar').offset();$(window).scroll(function () { if ($(this).scrollTop() > pos.top) { $('.nav-bar').css('top', 0).css('position', 'fixed'); } else if ($(this).scrollTop() <= pos.top) { $(
2021-09-10 10:37:51 452
原创 windows10下部署WSL2的docker的lnmp环境
windows官方攻略推荐在windows下安装docker,比较麻烦。这边尝试在WSL2中直接通过docker搭建lnmp环境。安装WSL官方文档官方文档中介绍了两种方式安装WSL,一种是简化安装,输入一行命令即可。另一种是手动安装,有6个步骤。使用简化安装需要加入 Windows 预览体验计划,我选用的是手动安装。以下是安装方法:组合键win+x,以管理员身份打开 PowerShell 并运行:> dism.exe /online /enable-feature /featuren
2021-08-05 15:46:37 594
原创 VSCode手动安装go插件的依赖
vscode安装了Go插件之后,使用各种功能时,需要用到go语言的依赖包。自动安装会报错,这里介绍手动安装方法。这里介绍一个例子:安装goreturns依赖(自动格式化代码的工具)。克隆goreturns包:$ cd $GOPATH/src$ git clone https://github.com/sqs/goreturns.git此时安装会报错:$ go install goreturnsgoreturns\goreturns.go:23:2: cannot find package "
2020-09-03 12:00:52 1501 1
原创 通过Byte、ASCII、GB2312、Unicode、UTF-8的关系讲清楚字符编码
定义:byte: 字节,计量单位,8个比特为1个字节。可以表示的最大数字是11111111,十进制是255。ASCII: 一套编码规则,为了让计算机能够识别字符而设计的,由美国制定、固定用1个字节来存放,规则比较简单,从0开始,1个整数对应1个字符。例1:十进制整数 65 对应字符 A。GB2312: 也是一套编码规则,由中国制定,固定用2个字节来存放。收录规则是“区位码”,第1个字节对应“区”,第2个字节对应“位”,区和位的范围都是1-94,计算时需要把区号和位号分别加上0xA0,按十进
2020-07-07 18:03:29 1081
原创 Laravel 5.x Illuminate\Http\Request 类 offsetSet(),merge(),replace() 方法的区别
Request是Laravel最常用类之一,今天碰到几个功能类似的方法,仔细看了一下区别,这里记录一下以供日后参考。offsetSet()方法:接受2个参数,键和值,用来向$request对象添加变量。源码:/** * Sets a parameter by name. * * @param string $key The key * @param mixed $value T...
2020-05-08 11:34:41 1002
原创 使用Docker手动部署LNMP开发环境
我的系统版本:CentOS-7-x86_64-Minimal-1908.iso安装Docker安装仓库:$ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 设置仓库地址:$ sudo yum-config-manager \ --add-repo \ https://...
2020-02-24 16:03:29 1857 1
原创 PhpStorm配置远程xdebug
安装XDebug安装就不细说了,攻略很多,这里主要讲配置。安装攻略:源码安装 xdebug,并在 vscode 中配置php.ini配置:注释掉的都可以不要zend_extension=xdebug.so; xdebug 的远程连接开关,必须开,关了就不发消息给IDE。xdebug.remote_enable=1; 这个配置是2.9版之前的。我装的2.9,配了没用。phpsto...
2019-12-30 17:06:14 511 1
原创 一个函数搞定无限层级分类
数据结构关键点:需要处理源数组,使其键名与键值的id相等。level主要为了显示方便,不是关键字段。$items = array( 1 =&amp;gt; array('id'=&amp;gt;1, 'pid' =&amp;gt; 0, 'name'=&amp;gt;'1层1', 'level' =&amp;gt; 1), 2 =&amp;gt; array('id'=&am
2018-11-02 14:21:06 1304
转载 使用PHP7.1的openssl加解密MCRYPT_3DES,与7.1之前的版本匹配
$message = "Lorem ipsum";$key = "123456789012345678901234";$iv = '';$message_padded = $message;$message_padded = self::pkcs5_pad($message_padded, 8);if (strlen($message_padded) % 8) { $messa...
2018-08-02 16:41:03 3536
原创 使用PHP7.1的openssl加解密AES-128-CBC,与7.0之前的版本匹配
因为老版本与线上环境的mcrypt不兼容,在php7.1上使用会报错,官网也说了:Warning This function has been DEPRECATED as of PHP 7.1.0. Relying on this function is highly discouraged. 这里贴上解决办法。 先上7.0之前的代码:&lt;?phpclass Security{ pr
2017-12-20 14:53:07 12854 1
原创 mysql 5.7 主从配置
原理:MySQL使用3个线程来执行复制功能(其中1个在【主服务器】上,另两个在【从服务器】上。 当【从服务器】发出START SLAVE时,【从服务器】创建一个I/O线程,以连接【主服务器】并让它发送记录在其二进制日志中的语句。 【主服务器】创建一个线程将二进制日志中的内容发送到【从服务器】。该线程可以识别为【主服务器】上SHOW PROCESSLIST的输出中的Binlog Dump线程。
2017-08-09 23:36:48 739
原创 CentOS7防火墙firewalld配置
配置文件路径firewalld的配置存储在/usr/lib/firewalld/和/etc/firewalld/上的各种XML文件中。 1. 系统配置目录:/usr/lib/firewalld/services 目录中存放定义好的网络服务和端口参数,系统参数,不能修改。 2. 用户配置目录:/etc/firewalld/ 公共规则定义在/etc/firewalld/zones/public.
2017-08-05 11:29:27 1231
原创 nginx学习笔记
基础nginx由模块组成,这些模块由配置文件中指定的指令控制。指令被分为简单的指令和块指令。一个简单的指令由空格分隔的名称和参数组成,以分号结尾。块指令具有与简单指令相同的结构,但不是以分号结尾,而是以大括号包围的一组附加指令结束。如果一个块指令可以在括号内包含其他指令,则称为上下文。例子:http { server { location / {
2017-08-04 17:55:53 234
原创 nginx配置负载均衡
先科普一下什么是反向代理:我们常说的代理也就是指正向代理,正向代理的过程,它隐藏了真实的请求客户端。服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求。反向代理隐藏了真实的服务端,当我们请求 www.baidu.com 的时候,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了。两者的区别在于代理的对象不一样:正向代
2017-08-04 10:54:37 298
原创 PHP获取curl传输进度
curl上传或者下载,有以下2个选项:CURLOPT_NOPROGRESS => false,CURLOPT_PROGRESSFUNCTION => 'callback',CURLOPT_NOPROGRESS:是否关闭传输进度,默认是true。CURLOPT_PROGRESSFUNCTION:回调函数,curl传输过程中,会每隔一段时间自动调用该函数。我测试过,间隔不到1秒,具体不知道。官方的注释
2017-07-19 12:37:31 3066
原创 MySQL更新锁(for update)摘要
* 更新锁:for update *在事务中加更新锁后,该事务以外的加更新锁查询无法执行,但不影响普通查询。// 进程1begin;select * from t where id = 1 for update;现在开启另一个进程// 进程2select * from t where id = 1 for update; // 此查询会等待进程1提交,或进程关闭后才执行。select *
2017-07-19 12:36:14 663
原创 chrome中加载WebUploader、UEditor,点击上传文件选择框会延迟几秒才会显示,反应很慢
WebUploader:chrome52.0.2743.80以上,accept: { title: 'Images', extensions: 'jpg,jpeg,png', mimeTypes: 'image/*'}改为:accept: { title: 'Images', extensions: 'jpg,jpeg,png', mimeTypes: 'image/jpg
2017-07-19 12:35:31 660
原创 cURL error 60: SSL certificate problem...
php在curl的时候报此错误:cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)根据报错后面提示的地址查询60错误:CURLE_SSL_CACERT (60)Peer certif
2017-07-19 12:30:09 18128
原创 Laravel5:sql语句的正确打印方式
Larave5 用DB自带的getQueryLog方法直接打印:DB::connection()->enableQueryLog(); // 开启QueryLog \App\User::find(1); dump(DB::getQueryLog());得到的结果语句与参数是分开的,非常不方便验证[ 0 => array:3 [▼ "query" => "select * from
2017-07-19 12:29:20 6832 2
原创 Laravel5 容器自动加载依赖的原理
laravel的App::make()是如何解决实例化时所需的依赖的? 比如说:A类的构造函数参数依赖B类 class A {public function __construct(B $b) {}} 实例化A类,需要new A(new B); 而laravel的容器可以这样:App:make(A::class),自动的解决了B类的依赖,它是如何做到的?
2017-07-19 12:27:14 923
原创 laravel上线时,需要做的事
配置缓存:为了给应用加速,你可以使用 Artisan 命令 config:cache 将所有配置文件的配置缓存到单个文件里,这将会将所有配置选项合并到单个文件从而可以被框架快速加载。 应用一旦上线,就要运行一次 php artisan config:cache,但是在本地开发时,没必要经常运行该命令,因为配置值经常需要改变。移除配置缓存:php artisan config:clear路由缓存:如
2017-07-12 16:45:16 1021
原创 laravel 5.3 给容器传参
Laravel 5.3 之前,是可以给容器传参的。 解析容器的时候,是可以直接传参数的。make有第二个参数//自定义服务提供者namespace App\Providers;use Illuminate\Support\ServiceProvider;class UeditorUploaderProvider extends ServiceProvider{ public func
2017-07-12 16:44:36 1283
原创 wamp多站点设置
打开httpd.conf文件,去掉一行注释# Virtual hostsInclude conf/extra/httpd-vhosts.conf在文件末设置网站。 <VirtualHost *:80> DocumentRoot "e:/www/shopnc" ServerName xk.com</VirtualHost><VirtualHost *:80> DocumentRoot "e:
2017-07-12 16:43:19 231
原创 Laravel 5.3 不同用户表登录认证-优化
具体看这篇文章: Laravel 5.3 不同用户表登录认证需要优化的地方:不需要新增中间件,【后台管理认证中间件】部分全部去掉,使用框架自带的中间件就行了。
2016-12-28 17:44:30 1398
原创 用VirtualBox的CentOS安装PHP环境
CentOS先装好,放碟子一步步装,没什么好说的。 在虚拟机的窗口右下角修改网络连接方式为:桥接网卡,界面名称:Realtek xxxxxxxxx然后进入CentOS 安装网络工具: yum install net-tools按装下载工具: yum install wget配置ip: 打ifconfig看网卡名称(看到名称为enp0s3 ),然后进入一下目录编辑文件 vi /e
2016-09-28 17:03:25 452
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人