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')将会插入成功。


   

最新文章

  1. openvpn 启动
  2. 【Java EE 学习 70 上】【数据采集系统第二天】【数据加密处理】【登陆验证】【登陆拦截器】【新建调查】【查询调查】
  3. Win10下SQLServer2000的安装
  4. mysql.connector操作mysql的blob值
  5. xmind 使用备忘
  6. oracle远程连接太慢
  7. response ,request编码
  8. hdu 1869
  9. PHP编写的SVN类
  10. ECSTORE导航吸顶功能
  11. java提高篇(二)-----理解java的三大特性之继承
  12. 利用workbench将excel数据导入到MySQL中
  13. Publish Web Site To IIS From VS
  14. C语言函数与程序结构
  15. Centos下mongodb的安装与配置
  16. 透析thinkphp5升级版开发框架tpframe
  17. Zabbix-server 3.4 安装详细和修改web界面中文出现的乱码(一)
  18. iOS键盘事件实现、控制
  19. 2018-2019-2 20175332-实验一《Java开发环境的熟悉》实验报告
  20. Kotlin入门(1)搭建Kotlin开发环境

热门文章

  1. vue2.0中watch总结:普通监听和深度监听
  2. Vue一个案例引发的动态组件与全局事件绑定总结
  3. docker启动redis并使用java连接
  4. java 对象引用为null时,出现的bug问题
  5. android 播放音乐媒体文件(三)
  6. IDEA超实用快捷键
  7. 浏览器端-W3School-JavaScript-HTML DOM:HTML DOM Document 对象
  8. linux(centOS7)的基本操作(四) 定时任务——crontab
  9. MutablePropertyValues的简单用法
  10. LoadRunner 技巧之 集合点设置