TP
-
使用db助手函数默认每次都会重新连接数据库,而使用Db::name或者Db::table方法的话都是单例的。
-
验证器
$validate = validate('User'); if(!$validate->check($data)){ dump($validate->getError()); } -
TP事务
//启动事务 Db::startTrans(); //失败,回滚 db::rollback(); //成功,提交 db::commit(); -
TP3 多条件查询 whereor and
//式子 $order=M('order_info'); $where['order_status']=5; $where['shipping_status']=2; $map['_complex'] = $where; $map['order_status']=6; $map['_logic'] = 'or'; $final['_complex'] = $map; $final['user_id']=1; //生成的mysql语句 SELECT * FROM `ecs_order_info` WHERE ( ( `order_status` = 5 AND `shipping_status` = 2 ) OR `order_status` = 6 ) AND `user_id` = 1 ```TP3 多条件查询 whereor and ```php //式子 $order=M('order_info'); $where['order_status']=5; $where['shipping_status']=2; $map['_complex'] = $where; $map['order_status']=6; $map['_logic'] = 'or'; $final['_complex'] = $map; $final['user_id']=1; //生成的mysql语句 SELECT * FROM `ecs_order_info` WHERE ( ( `order_status` = 5 AND `shipping_status` = 2 ) OR `order_status` = 6 ) AND `user_id` = 1 -
tp3 同字段多条件查询
$hideArr = array('%模式%','%卡券%','%正式%','%测试%'); $where['Describe'] = array('notlike',$hideArr,'And'); -
tp3 同key 被覆盖的问题
$whereArr['where']['_string'] = '`Describe` NOT REGEXP "('.implode('|', $hideArr).')"'; //tp5已经可以直接用regxp -
同字段或 or
//句式 $where = array( ['Market','eq',1], ['Current','lt','5'], ['StockCode|StockName','like','%12%'] ); //mysql语句 SELECT * FROM `tb_log_redies_minutes` WHERE `Market` = 1 AND `Current` < 5 AND ( `StockCode` LIKE '%12%' OR `StockName` LIKE '%12%' ) -
TP5 and or 一起用
$courseArr = Db::name('course_buy')->where(function($query) use($MemberIds){ $query->where('Type',1)->whereor('ExpirationDate','>', date('Y-m-d')); })->where('MemberId','in',$MemberIds)->group('MemberId')->column('(sum(Nums)-sum(SurplusNums)) as Lessons,sum(SurplusNums) as Surplus','MemberId'); SELECT `MemberId`,(sum(Nums)-sum(SurplusNums)) as Lessons,sum(SurplusNums) as Surplus FROM `tb_course_buy` WHERE ( `Type` = 1 OR `ExpirationDate` > '2019-10-18' ) AND `MemberId` IN (29,12) GROUP BY `MemberId` -
同时自增自减修改多个数据
$bill_update_field = array( 'QuotaMoney' => Db::raw("QuotaMoney+{$add_quota}"), 'QuotaStorage'=> Db::raw("QuotaStorage+{$total_quota_storage}"), 'AddStorage'=> Db::raw("AddStorage+{$total_quota_storage}"), 'AddQuotaNums'=> Db::raw("AddQuotaNums+1"), ); -
调用存储过程
$sql = "call proc_shift_intermediary_special({$specialId},{$saleId},@result)"; $res = Db::query($sql);
浙公网安备 33010602011771号