Yii2数据库操作之批量插入batchInsert()

数据库真的真的很脆弱!!!在一些应用场景中,需要对一些数据进行批量的插入,例如日志,例如批量新增数据,例如数据导入等。大多数不考虑效率的情况下,可以直接使用foreach循环插入(通俗易懂简便).但是考虑性能和数据库的优化的情况下,你就一定要了解到batchInsert这个方法了。直接上代码: //要插入的表的名称 $tableName = UserTagList::tableName(); //要插入的字段 $....
  •   
  • 145
  • php
  • 5
  • dodobook
  • 2016/12/26
light_on_off

2016滴滴出行研发工程师笔试题(亮灯问题)

一、题目 2015盏灯,一开始全部熄灭,序号分别是1-2015,先把1的倍数序号的灯的开关全部按一次,然后把2的倍数的灯的开关全部按一次,然后把3的倍数的开关按一次,以此类推,最后把2015的倍数灯的开关按一次。问最后亮着的灯有多少盏? A. 43       B. 44         C. 45      D. 46 二、解题 咋一看,这不是数学问题吗?干脆用数学解了。 先来分析一下,因为一开始的时候 2....
  •   
  • 776
  • php
  • 0
  • dodobook
  • 2016/12/22

Yii2获取model->save()错误信息中的第一条的方法

在Yii2中经常需要对数据表的新增更新或者删除。这个时候就经常用到$model->save()的方法,且model里面的rule会对这些提交的数据进行验证。验证不通过的话,会抛出提示的信息。以下这个方法就是得到获取Model错误信息中的 第一条,无错误时返回 null 直接上代码。 //获取 Model 错误信息中的 第一条,无错误时 返回 null public static function getModelError($model) {....
  •   
  • 168
  • php
  • 0
  • dodobook
  • 2016/12/13
PHP得到最近一周的日期已经得到某个月的实际天数Date

PHP得到最近一周和某月\某年的实际天数Date(t)\Date(z)

最近有一个接口的需求需要统计最近一周的相关的数据(如下图),也需要统计日均数据(因为月份是可以随意切换的,所以也就需要得到每个月有多少天的数据)。此处我写了一个简单的方法用于公共调用,当然有更好的方法。 温馨提示 Date('t',$time); //PHP日期函数得到某个月的真实天数 /** * 用于获取最近一周的日期列表 * 用于计算每个月的天数(本月的话截止到今天2016-12-0....
  •   
  • 253
  • php
  • 2
  • dodobook
  • 2016/12/08

PHP中array_key_exists()与isset()以及??的区别

PHP中array_key_exists用于检查某个键名是否存在于数组中,而isset也可以用于检测数组中某个键名是否存在,那么二者有什么区别呢? 一个基本的区别是isset()可用于数组和变量,而array_key_exits()只能用于数组。 但是最主要的区别在于在设定的条件下的返回值。现在我们来验证一下这个最主要的区别。 array_key_exists() array_key_exists() 会检查键值的存在. 这个函数会返....
  •   
  • 135
  • php
  • 0
  • dodobook
  • 2016/11/21

PHP获得两个或多个数组交集与差集的方法

在一些常见的场景下面,例如有一大群用户列表,需要获得一部分包含某个标签的用户列表,不包含某个标签的用户列表。就需要用到交集,共同含有的标签,差集不包含某个标签。 这篇文章主要介绍了PHP获得数组交集与差集的方法,实例分析了array_intersect与array_diff方法在求数组交集与差集时的使用技巧,需要的朋友可以参考下 本文实例讲述了PHP获得数组交集与差集的方法。分....
  •   
  • 165
  • php
  • 0
  • dodobook
  • 2016/11/18

PHP使用Yii2实现LinkedIn(Api)授权登录并获取信息Demo

在已经安装好相关的扩展的情况下(若未安装Yii2的扩展请移步参考底部的安转的相关文章),注册开发者账号,配置开发者相关的信息。 之后直接上代码:LinkedinController.php <?php /** * User: Dodobook * Date: 2016/11/1 08:08:08 */ namespace app\controllers; use Yii; use yii\web\Controller; use yii\httpclient\Client; use yii\authclient\clien....
  •   
  • 176
  • php
  • 0
  • dodobook
  • 2016/11/08

PHP使用Yii2实现Facebook(Api)授权登录并获取信息Demo

在已经安装好相关的扩展的情况下(若未安装Yii2的扩展请移步参考底部的安转的相关文章),注册开发者账号,配置开发者相关的信息。 之后直接上代码:FacebookController.php <?php /** * User: Dodobook * Date: 2016/11/1 08:08:08 */ namespace app\controllers; use Yii; use yii\httpclient\Client; use yii\web\Controller; use yii\authclient\clien....
  •   
  • 165
  • php
  • 0
  • dodobook
  • 2016/11/08
twitter_set

PHP使用Yii2实现Twitter(Api)授权登录并获取信息Demo

在已经安装好相关的扩展的情况下(若未安装Yii2的扩展请移步参考底部的安转的相关文章),注册开发者账号,配置开发者相关的信息。初步的配置信息如下所示。 之后直接上代码:TwitterController.php <?php /** * User: Dodobook * Date: 2016/11/1 08:08:08 */ namespace app\controllers; use Yii; use yii\httpclient\Client; use yii\web\Controller; ....
  •   
  • 444
  • php
  • 0
  • dodobook
  • 2016/11/08

Yii2安装加载AuthClient Extension来实现第三方的授权登录

最近接手一个工作内容需要获取第三方的授权登录,授权的第三方平台包括Twitter Facebook LinkedIn等。目前项目使用的Yii2框架。 对应的看了一下Twitter facebook 以及Linkedin的文档,发现有相似之处,又有不同之处,如果单独对每一个都引入一个扩展的话,显得不那么友好以及容易维护。 对于php程序员来说,facebook和linkedin是非常的友善的,极度的点赞一个,不仅有demo....
  •   
  • 166
  • php
  • 0
  • dodobook
  • 2016/11/08

使用PHP发送get、post请求的几种方法(curl,header)

在接口的开发中经常会遇到需要请求相关的第三方或者其他应用的接口,此处收集了几种PHP的发送get、post请求的方法。建议用curl。 方法1: 用file_get_contents 以get方式获取内容 $url='http://www.dodobook.net/'; $html = file_get_contents($url); echo $html; 方法2: 用fopen打开url, 以get方式获取内容 $fp = fopen($url, 'r'); //返回请求流信息....
  •   
  • 172
  • php
  • 0
  • dodobook
  • 2016/11/08

Yii2接口类里面直接调用Jpush的公共方法Demo示例

现在很多APP都使用极光推送实现消息订单等的通知。极光推送的PHP的接口之前的文章已经介绍过。文章底部有相关的链接可以直接访问。此处是写了一个公共的方法在很多地方直接调用。 使用示例如下代码所示,有区分个人版本和企业版本。传入个人(企业)ID和推送的信息内容。 //Jpushe 推送给用户的公共方法 public function jpushMember($member_id,$msg=''){ if(!$membe....
  •   
  • 201
  • php
  • 0
  • dodobook
  • 2016/10/11

PHP递归方式把一个数组里面的null转换为空字符串”的方法

在一些接口的调用中,直接查询数据库出来的字段可能为null字段,但是为了简便前端的判断,需要把null转换成空字符串'',这个时候就需要递归的方式进行。直接上代码如下: //把 null转换为空'' 递归方式 public function _unsetNull($arr){ if($arr !== null){ if(is_array($arr)){ if(!empty($arr)){ foreach($arr as $key => $value){ if($value =....
  •   
  • 171
  • php
  • 0
  • dodobook
  • 2016/10/11

PHP判断日期(生日)格式是否正确合法的方法

在某些场景之中需要判断某个日期是否是正确的日期格式.例如需要用户填写自己的生日,建议直接使用统一的日期控件即可。但是某些特殊自定义的场景下是用户自行输入的年月日,这个时候就需要对这个日期的合法性进行验证了。验证方法如下。 $date_str='2014-11-11';//这里可以任意格式,因为strtotime函数很强大 //$date_str='2014/11/11'; $is_date = strtotime($date_....
  •   
  • 218
  • php
  • 0
  • dodobook
  • 2016/10/10

Yii2使用(设置,获取,删除)cookie的方法

Yii2设置Cookies use yii\web\Cookie; //使用Cookie类 $cookie = new Cookie(); $cookie->name = 'user_name'; $cookie->value = 'dodobook'; $cookie->domain = '.dodobook.net'; //域名 $cookie->expire = time() + 86400 * 7; //7天时间 $cookie->httpOnly = true; //将cookie设置成HttpOnly是为了防止XSS攻击窃取cookie内容,这样就增....
  •   
  • 321
  • php
  • 0
  • dodobook
  • 2016/10/09

Yii2中Model中rules中自定义message无效的问题原因

今天在使用Yii2中的Model里面的rules规则的时候,希望验证规则不通过的时候出现自己自定义的提示信息。但是按照常规写法部分能按照自定义的语句提示(require integer...),但是对于有max min的就没有按照自定义的形式输出了。 经过查询相关资料以及Yii2的源码yii.validation.js里面有了新的定义tooLong tooShort tooBig tooSmall 等,和Yii1有一定的区别。 如果需要查看相关的....
  •   
  • 310
  • php
  • 0
  • dodobook
  • 2016/09/21

修改Yii2的默认语言language为中文zh-CN的方法

在开发Yii2的情况下,有时候遇到错误的情况下(例如model下面的错误提示信息),希望提示信息默认为中文,这个时候就需要修改Yii2的默认语言,最直观的方式是: //Yii2的默认的配置文件里面 $config = [ 'id' => 'basic', 'basePath' => dirname(__DIR__), 'language' => 'zh-CN', //全局设置为中文--推荐 ] 如果只针对局部的某一个控制器和....
  •   
  • 314
  • php
  • 0
  • dodobook
  • 2016/09/21

对于大数组查找某个值in_array和array_flip+isset的性能比较

假设有一个10万条记录的数组,需要查找某一个值是否存在该数组内.大多数情况下直接使用in_array这个PHP的自带函数,但是当这个数组很大和很复杂的时候,建议使用array_flip和isset的方式来提高性能. 首先来看一下PHP源码,从代码中可以看出while循环在遍历数组中的所有元素取值做对比,如果数组中元素特别多又频繁调用的时候,效率可想而知。 由于数组的键是放在Hash表的key中....
  •   
  • 214
  • php
  • 1
  • dodobook
  • 2016/09/21

获取PHP服务端的网卡MAC地址的方法

本意是想获得PHP客户端的用户的MAC的地址的,网上查找了一些资料,该篇幅先讲如何获得服务器端的MAC地址的方法和类。Windows下面比较容易,但是Linux下面因为权限的因素,可能坑多一些,希望各自尝试,或者给我提供好的方法和建议。直接上类文件和代码: <?php /** 获取网卡的MAC地址原码:目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址 **/ class MacA....
  •   
  • 211
  • php
  • 0
  • dodobook
  • 2016/09/19

Yii2表单提交报错:unable to verify your data submission

Yii2在提交表单的时候遇到"Unable to verify your data submission" 这种情况,是因为Yii2的防止拦截了csrf攻击,你则不能提交的表单。如果你希望当前可以多次重复提交,或者你写的是API接口,可以在当前提交的表单controller中局部关闭csrf,不过需要注意对用户提交的数据进行安全性验证和过滤。 class ApiController extends Controller{ public $enableCsrfValidati....
  •   
  • 318
  • php
  • 0
  • dodobook
  • 2016/09/18