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
九 php文件为什么不加?> 2019-11-21 10:28:38
十 限制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
十二 mysql删除所有表 2020-10-19 17:31:15
SELECT CONCAT('DROP TABLE ', table_name,';') FROM information_schema.`TABLES` WHERE table_schema='testdb'; -- testdb 为数据库名称
复制结果集,再执行一次即可