zoukankan      html  css  js  c++  java
  • 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 appmodel;
    use thinkModel;
    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')将会插入成功。





      
  • 相关阅读:
    聪明的质检员 (二分)
    分巧克力(二分)
    产生冠军 HDU
    Legal or Not HDU
    确定比赛名次 HDU
    最短路径问题 HDU
    dijkstra算法为什么不能有负边?
    最短路 HDU
    dijkstra算法 模板
    Floyd算法模板--详解
  • 原文地址:https://www.cnblogs.com/bushuwei/p/10844858.html
Copyright © 2011-2022 走看看