notes-19-05-10
一 mysql查找一个表中字段相同的数据 2019-05-10 15:51:03
SELECT product_record_id FROM `t_warehouse_record` where document_id = 112 and document_type = 1 GROUP BY `product_record_id` HAVING COUNT(*) > 1
多字段
SELECT * FROM `t_warehouse_record` a WHERE 1 and a.document_id = 112 and a.document_type = 1 and a.product_record_id in (SELECT product_record_id FROM `t_warehouse_record` where document_id = 112 and document_type = 1 GROUP BY `product_record_id` HAVING COUNT(*) > 1)
二 Referer的作用?2019-05-17 10:03:48 (来自网络)
1.防盗链
我在www.google.com里有一个www.baidu.com链接,那么点击这个www.baidu.com,它的header信息里就有:
Referer=http://www.google.com
那么可以利用这个来防止盗链了,比如我只允许我自己的网站访问我自己的图片服务器,那我的域名是www.google.com,那么图片服务器每次取到Referer来判断一下是不是我自己的域名www.google.com,如果是就继续访问,不是就拦截。
这是不是就达到防盗链的效果了?
将这个http请求发给服务器后,如果服务器要求必须是某个地址或者某几个地址才能访问,而你发送的referer不符合他的要求,就会拦截或者跳转到他要求的地址,然后再通过这个地址进行访问。
2.防止恶意请求
比如静态请求是*.html结尾的,动态请求是*.shtml,那么由此可以这么用,所有的*.shtml请求,必须 Referer 为我自己的网站。
Referer=http://www.google.com
注意:只有通过链接访问当前页的时候,才能获取上一页的地址,以下情况是获取不到值的:
只有通过链接访问当前页的时候,才能获取上一页的地址
1,window.open
2,直接输入地址
3,改变location
4,<a href="javascript:location='url'">xx</a>
三 通过引用方式实现无限极分类
/**
* 把返回的数据集转换成Tree
* @param array $list 要转换的数据集
* @param string $pk 自增字段(栏目id)
* @param string $pid parent标记字段
* @return array
* @author dqs <1696232133@qq.com>
*/
function make_tree($list,$pk='id',$pid='pid',$child='_child',$root=0){
$tree=array();
$packData=array();
foreach ($list as $data) {
$packData[$data[$pk]] = $data;
}
foreach ($packData as $key =>$val){
if($val[$pk]==$root){//代表跟节点
$tree[]=& $packData[$key];
}else{
//找到其父类
$packData[$val[$pid]][$child][]=& $packData[$key];
}
}
return $tree;
}
四 TP5 闭包传参的whereOr 查询 2019-08-13
$where['id'] = $document_id;
$where['from__id'] = $own_warehouse;
$where['from_type'] = 0;
$whereor['id'] = $document_id;
$whereor['receiving_id'] = $own_warehouse;
$whereor['receiving_type'] = 0;
$document_info = db('insurance')->where(function($query) use ($where){$query->where($where);
})->whereOr(function($query) use ($whereor){$query->where($whereor);
})->order('create_time desc')->find();
五 tp5 hasone() 2019-08-13
<?php
namespace app\model;
use think\Model;
class insurance extends Model{
public function logistics(){
return $this->hasOne('logisticsCompany', 'id', 'logistics_company');
}
}
$detail = model('insurance')->find();
$logisticsName = $detail['logistics']['name'];
注意:
model的hasone函数不要下划线,直接写成一个单词(暂未验证驼峰是否可行). 如果logistics() 写成logistics_ok(),则取不到关联,可以写成logisticsok(),暂未验证logisticsOk().
六 mysql delete drop truncate 2019-09-09
当你不需要该表时, 用 drop;当你仍要保留该表,但要删除所有记录时, 用 truncate;当你要删除部分记录时(always with a WHERE clause), 用 delete.
七 php脚本全执行完的之后 才会输出内容 2019-10-14 16:19
echo date("Y-m-d H:i:s")."<br />";
sleep(5);
echo date("Y-m-d H:i:s");
页面会在5s之后才渲染内容,两个时间差为5s
八 php sleep()导致所有网页都没响应了 2019-10-14 17:18:17
q:
打开那个页面,60秒后才有输出,这个是正常的;
但是在这60秒内我网站中的其他网页也都是loading的状态,直到这个页面出现了 a:
1. 程序里是否只有一句sleep()代码?是否有类似 session_start() ? 或者是你修改过php.ini开启了自动开启session.
如果是,那就是session文件锁导致
2. 你php-fpm中最大子进程是几个?如果只有一个,也会造成拥堵的状况
(sleep不占用系统资源,它会把cpu的控制权交换给内核,内核会再schedule到另一个进程。
这种简单的事情,你写个while (true) sleep(1)的程序然后top一下就能判断的。)
九 php文件为什么不加?> 2019-11-21 10:28:38
加与不加,视情况而定。先定义一下两者的区别。 加结尾的:之后的内容视为 纯文本直接输出,直到再次碰到 <? 或 <?php
不加的:之后的内容视为 PHP 代码,除非没有代码了。 像一些函数库,类库这类文件,不加结尾比较好。这样当它们被其他文件包含的时候,可以避免一些因为有输出而导致的错误。比如 <?PHP
//如果 a.php 有结尾,并且后面多一个回车或空格。下面这行一定报错。
include("a.php");
session_start():
?> 另外,不加结尾还有个好处,如果服务器被病毒感染,病毒会在你的 PHP 文件最后加上 HTML 码。例如:< img src="他的带毒地址" /> 不加结尾的话,等效于直接在 PHP 文件里书写 HTML 码,PHP 报错运行中断。至少你网站的访客不会因为这个中毒,你也能马上发现染毒了。。 总的来说,我个人认为,纯 PHP 的程序,不加结尾符,比加结尾符更具有优势。如果你程序后面还有 HTML 码之类的文本输出,那你一定要加结尾。
十 限制input框只能输入6位数字,其他字符均不可输入 2019-11-21 11:01:44
<input type="text" oninput="value=value.replace(/[^\d]/g,'')" maxlength="6" />
十一 批量插入数据 2019-11-21 11:03:42
在项目中,会遇到批量插入数据,如果还是使用insert into() values(),只要其中有一条数据失败,整个就失败。 在我们项目中,允许失败,正常的数据需要插入成功。 解决方法: 1.insert ignore into 当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回。所以使用ignore请确保语句本身没有问题,否则也会被忽略掉。例如: INSERT IGNORE INTO books (name) VALUES (1, 'MySQL'),(1,'JAVA') (1, 'MySQL')将会插入成功。 2.replace into 如果存在primary or unique相同的记录,则先删除掉。再插入新记录。 REPLACE INTO books (name) VALUES (1, 'MySQL'),(1,'JAVA') (1,'JAVA')将会插入成功。
notes-19-05-10的更多相关文章
- 北京Uber优步司机奖励政策(10月19日~10月25日)
用户组:优步北京人民优步A组(适用于10月19日-10月25日) 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万 ...
- [19/05/27-星期一] JavaScript_ 条件语句(if语句)和循环语句(while 、for、do-while)
一.条件语句 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti ...
- [19/05/02-星期四] GOF23_行为型模式(状态模式、观察者模式、备忘录模式)
一.状态模式 [状态接口] /*** * 房间"状态"接口 */ package cn.sxt.state; public interface State { void handl ...
- Murano Weekly Meeting 2016.05.10
Meeting time: 2016.May.10 1:00~2:00 Chairperson: Serg Melikyan, from Mirantis Meeting summary: 1. m ...
- 2016/05/10 thinkphp 3.2.2 ①系统常量信息 ②跨控制器调用 ③连接数据库配置及Model数据模型层 ④数据查询
[系统常量信息] 获取系统常量信息: 如果加参数true,会分组显示: 显示如下: [跨控制器调用] 一个控制器在执行的时候,可以实例化另外一个控制,并通过对象访问其指定方法. 跨控制器调用可以节省我 ...
- [19/05/29-星期三] JavaScript_ 函数的简介
一.函数的简介 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...
- [19/05/26-星期日] JavaScript_ 基本语法_运算符
一.概念 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...
- [19/05/19-星期日] CSS_css的声明和选择器
一.引言 HTML的作用是负责数据的格式展示,如果使用它来搞数据的样式,则发现样式书写出来太麻烦,不易于维护: HTML可以有效组织数据的展示,但是不同类型数据在浏览器中的分布没有办法展示. HTML ...
- [19/05/18-星期六] HTML_form标签
一.form标签(一) <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...
- [19/05/17-星期五] HTML_body标签(内嵌标签)和框架标签
一.内嵌标签 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!- ...
随机推荐
- RedisTemplate中zset类型的使用
简述 上一文中简述了使用StringRedisTemplate操作redis中的set类型,今天来记录一下操作zset类型的主要方法 代码 @RunWith(SpringRunner.class) @ ...
- uswgi
1.安装uwsgi注意: 1)在系统环境安装,非虚拟环境 2)使用对应python版本安装 3)要先安装python开发包 ###sudo apt-get install python3.6-dev ...
- Consul zookeeper etcd eureka
这里就平时经常用到的服务发现的产品进行下特性的对比,首先看下结论: Feature Consul zookeeper etcd eureka 服务健康检查 服务状态,内存,硬盘等 (弱)长连接,kee ...
- 11、kubernetes之dashboard
一.准备dashboard使用的证书 # cd /etc/kubernetes/pki/ pki]# (umask 077; openssl genrsa -out dashboard.key 204 ...
- 一、基础篇--1.2Java集合-Arraylist 与 LinkedList 区别
Arraylist 与 LinkedList 区别 结构上的区别 ArrayList底层实现基于动态数组,LinkedList底层实现基于双向链表. 性能上区别 ArrayList查询快,增删慢 ...
- Servlet基础总结
1.Servlet概念: Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间 ...
- 浅谈Manacher算法
Manacher manacher是一种\(O(n)\)求最长回文子串的算法,俗称马拉车(滑稽) 直接步入正题 首先可以知道的是:每一个回文串都有自己的对称中心,相应的也有自己的最大延伸长度(可以称之 ...
- DFA算法以及ios中OC实现DFA
DFA不同于苹果手机的idfa DFA全称为:Deterministic Finite Automaton,即确定有穷自动机.其特征为:有一个有限状态集合和一些从一个状态通向另一个状态的边,每条边上标 ...
- 代码实现:输入3个数a,b,c,按大小顺序输出。
import java.util.Arrays; import java.util.Scanner; //输入3个数a,b,c,按大小顺序输出. public class Test34 { publi ...
- idea 编译 netty 源码
git clone netty 源码,运行 example 报错 全量 mvn compile -DskipTests=true 后,依然报错 手动在 netty-buffer 模块中添加对应的依赖 ...