Press "Enter" to skip to content

下雨不打伞 Posts

如何将php的错误输出到nginx的error_log中去

通过FastCGI运行的PHP,在用户访问时出现错误,会首先写入到PHP的errorlog中如果PHP的errorlog无法写入,则会将错误内容返回给FastCGI接口,然后nginx在收到FastCGI的错误返回后记录到了nginx的errorlog中 所以将php的错误输出到nginx的error_log中的办法: 1.修改php-fpm.conf中配置,没有则增加

2.修改php.ini中配置,没有则增加

注: php-fpm.conf中的php_admin_value[error_log],php_admin_flag[log_errors]参数会覆盖到php.ini的error_log,log_errors中 如果只想输出到php-fpm的error…

Leave a Comment

MySQL LIKE中特殊字符转义及处理方法

,MySQL中LIKE的转义和平时用的字符串的转义是有区别的。 测试 首先来看一个测试:

  可以看出”\\\\“在LIKE中转义成”\“,LIKE的转义和平时用的字符串的转义还是有点不一样的。 文档 查了下官方文档,对于转义字符的解释: this is because the backslashes are stripped once by the parser and again when the pattern match is made, leaving a single backslash to be matched against. mysql自己的parser转义一次,然后LIKE的pattern对前面的结果再转义一次。 也就是说上例中的“\\\\”第一次转义成“\\”,第二次才是“\”。 测试2 再…

Leave a Comment

Mac下安装php7

第一步:设置brew brew tap homebrew/dupes brew tap homebrew/versions brew tap homebrew/homebrew-php 第二部:安装php7 brew install php70 安装扩展 redis brew install php70-redis 配置文件: /usr/local/etc/php/7.0/conf.d/ext-redis.ini memcached brew install php70-memcached 配置文件: /usr/local/etc/php/7.0/conf.d/ext-memcached.ini swoole brew install php70-swoole 配置文件: /usr/local/etc/php/7.0/conf.d/ext-swoole.ini 其他扩展类似这样安装。

Leave a Comment

Hive insert into 和 insert overwrite的区别

1、insert  into 语句 hive> insert into table userinfos2 select id,age,name from userinfos; 2、insert overwrite语句 hive> insert overwrite table userinfos2 select id,age,name from userinfos; 两者的区别: insert overwrite 会覆盖已经存在的数据,我们假设要插入的数据和已经存在的N条数据一样,那么插入后只会保留一条数据; insert into 只是简单的copy插入,不做重复性校验,如果插入前有N条数据和要插入的数据一样,那么插入后会有N+1条数据;

Leave a Comment

mysql中is not null和!=null及<> null 的区别

在mysql中,筛选非空的时候经常会用到is not null和!=null,这两种方法单从字面上来看感觉是差不多的,其实如果去运行一下试试的话差别会很大! 为什么会出现这种情况呢? null 表示什么也不是, 不能=、>、< … 所有的判断,结果都是false,所有只能用 is null进行判断。 默认情况下,推荐使用 IS NOT NULL去判断,因为SQL默认情况下对!= Null的判断会永远返回0行,但没有语法错误。 如果你一定想要使用!= Null来判断,需要加上这个语句: set ANSI_NULLS off 这时你会发现IS NOT NULL 和 != null 是等效的 一个字段如果设为“NULL”,表示如果这个字段的值为空时,自动插入一个“NULL”值。 一个字段如果设为“NOT NULL”,表示如果这个字段的值为空时,不自动插入“NULL”值(任其无值)。 …

Leave a Comment

php中in_array()的那些坑

in_arry()方法是php中的常用方法,使用也非常简单,但是偶尔不注意就会踩坑。。。 大家看一下下面的代码:

输出结果:

出乎意料, arr2中并没有字符串a,但是竟然返回了true。 这就是弱类型语言的坑啊, 在执行比较的时候, php进行了类型转换, 把字符串a转换成了int类型, 从而变成了0, 这时候恰巧arr2里面有0, 所以返回了true。 解决办法: in_array(‘a’, $arr2, true); 增加第三个参数,并设置为true,第三个参数是true时要求严格检查类型, 这样就ok了

Leave a Comment

jQuery选择器总结

jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法 $(“#myELement”) 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 $(“div”) 选择所有的div标签元素,返回div元素数组 $(“.myClass”) 选择使用myClass类的css的所有元素 $(“*”) 选择文档中的所有的元素,可以运用多种的选择方式进行联合选择:例如$(“#myELement,div,.myclass”) 层叠选择器: $(“form input”) 选择所有的form元素中的input元素 $(“#main > *”) 选择i…

Leave a Comment

秒杀系统架构优化思路

一、秒杀业务为什么难做 1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息); 2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据; 3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。   例如:小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万。 又例如:12306抢票,票是有限的,库存一份,瞬时流量非常多,都读相同的库存。读写冲突,锁非常严重,这是秒杀业务难的地方。那我们怎么优化秒杀业务的架构呢?   二、优化方向 优化方向有两个(今天就讲这两个点): (1)将请求尽量拦截在系统上游(不要让锁冲突落到数据库上去)。传统秒杀系统之所以挂,请求都压倒了后端数据层,数据读写锁冲突严重,并发高响应慢,几乎所有请求都超时,流量虽大,下单成功的有效流量甚小。以12306为例,一趟火车…

Leave a Comment

Laravel获取当前URL的多种方法

在Laravel中有很多种方式获取当前访问 URL: 1. 使用 Request 类:

2. 使用 $request 对象:

3. 使用 URL 类:

4. 使用 Input 类

Leave a Comment