一条sql语句是如何执行的?

我们在执行sql的时候,常常是直接写好值行即可、不是所有人都会思考一下这一条sql是如何值行的?比如 select * from `user` where `uid` = 110; 输入一条语句,那么他的值行过程是怎样的呢?经过拆解下面大概是一条sql的执行流程;连接器php客户端通过pdo、mysqli 链接mysql,如果用户名密码认证通过,连接器会到权限表里面查出你拥有的权限。之后,这个连接里面的权限判断逻辑,都将依赖于此时读到的权限;查询缓存MySQL 拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语句。之前执行过的语句及其结果可能会以 key-value 对的形式...

php 2020-11-17 PM 32℃ 0条

用php手写一个简单的MVC框架只需要几十行代码

说到php框架就不得不提MVC,现在主流框架都沿用的MVC的架构思想;我们学php初都会学习MVC,学习其运行流程、学其面向对象的思想;先来回顾一下MVC:MVC概念MVC包括控制器(Controller),模型(Model),视图(View)。控制器的作用是调用模型和 视图,将模型产生的数据传递给视图,并让视图去显示模型的作用是获取数据并处理返回数据视图的作用是将取得的数据进行美化,并向用户终端输出(2)执行过程浏览者 -> 调用控制器,发出指令控制器 -> 按指令选择合适的模型模型 -> 按指令取数据控制器 -> 按指令选视图视图 -> 把取到的数据展示...

php 2020-07-29 PM 290℃ 1条

PHP如何区分正式、生成和测试环境

日常开发中区分环境的重要性不言而喻;重点是根据环境加载不同环境的配置文件(数据库、redis、三方接口等);如果维护同一个文件很容易操作失误导致正式与测试数据混淆;有很多吃过大亏的小伙伴就是因为没有区分环境;一个简单的方法来区分正式、测试和生产;【Nginx】在配置环境server段location中添加相应的配置信息(fastcgi_param ENVIRON ):location ~ \.php($|/) { try_files $uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastc...

php 2020-07-28 PM 236℃ 0条

Swoole WebSocket 服务端如何主动推送消息?

最近有个朋友在使用swoole做一个在线看球赛的功能,球赛数据是实时更新的;要实现的是用户在浏览网页自动更新球赛数据(数据源是一个三方机构提供的,明确上线3秒请求一次);解决方案:轮询:客户端定时请求服务端接口(服务端再请求第三方接口);大概就是这样一个流程;虽然流程和逻辑简单,但是负载大、并且用户看到的结果可能是不一致的;swoole websocket方案:服务端定时请求接口,如果数据有更新,则主动推送到客户端实时修改数据即可;swoole大致就是这样一个简单的流程;逻辑简单,负载小,并且用户看到的结果都是一致的;下面是我写的一个简单的deomo:服务端代码: <?php //...

php 2020-06-30 PM 602℃ 1条

编程中的一些密码学知识

信息的时代,个人的信息都是有价值的,从事信息犯罪的人都受过良好的教育,有较高的知识水平,他们了解计算机的构造和工作原理;能够轻易截取个人的敏感信息;因此加密在编程中是非常重要的一个环节;在编程中一般信息分2种:明文:明文指的是未被加密过的原始数据;密文:明文被某种加密算法加密之后,会变成密文,从而确保原始数据的安全。密文也可以被解密,得到原始的明文。在编程中钥匙一般分2种:公钥:指的是公共的密钥,任何人都可以获得该密钥;私钥:私钥表示个人私有的密钥,即该密钥不能被泄露在编程中加密一般分2种:对称加密对称加密又叫做私钥加密,即信息的发送方和接收方使用同一个密钥去加密和解密数据。对称加密的特...

其它 2020-06-30 PM 276℃ 0条

PHP如何编译安装Reids扩展?

在使用linux、mac在某些情况下总是要比windows 要便利很多;如何给PHP安装Redis扩展,编译安装既适用于Linux也适用于MAC OS;下载php-redishttps://nodeload.github.com/nicolasff/phpredis/zip/master解压包,注意自己解压的位置tar -zxvf phpredis-master.zip进入redia扩展目录cd phpredis-master执行phpize(注意这里是你要安装的php的phpize,可以适用如下命令查看)which php #执行结果:/Applications/MAMP/bin/p...

php 2020-01-03 PM 1150℃ 4条

Mac Homebrew 的安装和Redis的安装

安装Homebrew我们使用官网提供的统一安装方法,只需执行下面的命令即可/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,Mac上默认已经给我们安装好了。一段漫长的时间过后,当出现Installation successful!提示时就表示已经安装成功。brew几个基本使用命令查询软件brew search 软件名安装软件brew install 软件名启动|停止|...

其它 2020-01-03 PM 563℃ 0条

PHP+Element UI递归实现无限极树形菜单

使用后台都会涉及到左侧的菜单分类;刚好今天再使用Yaf + element 做一个通用后台,实现了一下无限极菜单;下面具体讲一下实现方法:分为几个步骤:获取所有菜单递归分级递归渲染菜单首先我们来看一下element的菜单html结构<el-menu default-active="2" class="el-menu-vertical-demo" @open="handleOpen" @close="handleClose"> <el...

php 2019-12-26 AM 835℃ 0条

Typecho使用CommentMailPlus插件实现评论回复邮件通知

在使用Typecho后,很多朋友在网站评论后,我都是一一回复的,但是回复之后用户都不知道,要下次再来浏览才能看到我的回复,如果我回复之后能够以邮件的形式通知就比较好了;前2天本身想着自己写一款插件的,但是显示网上看了,已经有朋友实现了;首先在官网邮件回复插件有CommentToMail;但是在使用CommentToMail之后还是发现了一些问题;采用异步发送,失败率很高采用腾讯、网易等STMP服务器很不稳定,在尝试遇到很多问题;然后在githtb上看到CommentMailPlus这款插件,然后尝试了一下,本站也是使用的CommentMailPlusCommentMailPlus 的下载...

其它 2019-12-05 AM 986℃ 0条