关于thinkphp开发的几种规范(仅限个人)
一、只要设计到where查询语句,无论是增删改查
$cn['username'] = session('member.username');
$cn['itemid'] = $itemid;
$item = M('Buy')->where($cn)->find();
或者
$cn['username&status'] = array(session('member.username'),'2','_multi'=>true);
$list = M('FinanceRecord')->where($cn)->order('recordid desc')->select();
a.小于两个或者两个用下边的!超过2个用上边的。
b.这里有个小东西,就是list是列表,即select() 而,item是对象,即find();
c.还有$cn请记住这种写法!
二、关于保存和添加
$ds['moneyremain'] = 0.00;
$ds['status'] = 4;
$ds['edittime'] = NOW_TIME;
$step2 = M('Buy')->where($cn)->save($ds);//添加为add($ds),当然无where
如果是批量添加,则必须用批量方式进行添加
$ds[] = array(
'usernameout'=>$usernameout,
'usernamein'=>$usernamein,
'money'=>$money,
'moneypre'=>M('Member')->where('username=\''.$usernameout.'\'')->getField('money'),
'addtime'=>NOW_TIME,
'ip'=>get_client_ip(),
'typeid'=>$typeid,
'catid'=> $catid,//资金流向
'itemid'=>$itemid,
'title'=>$cats[$catid].':'.$types[$typeid],
'status'=>2,
'paytime'=>NOW_TIME,
);
$ds[] = array(
'usernameout'=>$usernameout,
'usernamein'=>$usernamein,
'money'=>$money,
'moneypre'=>M('Member')->where('username=\''.$usernameout.'\'')->getField('money'),
'addtime'=>NOW_TIME,
'ip'=>get_client_ip(),
'typeid'=>$typeid,
'catid'=> $catid,//资金流向
'itemid'=>$itemid,
'title'=>$cats[$catid].':'.$types[$typeid],
'status'=>2,
'paytime'=>NOW_TIME,
);
M('FinancePay')->addAll($ds);
三、关于另一种保存(更新一个字段或者两个字段,多了用上边那个)
M('Order')->where($cn)->setField(array('status'=>2, 'paytime'=>NOW_TIME));
四、关于搜索页面小技巧
前台页面搜索字段为
status=0(所有),status=1,status=2
catid=0(所有),catid=1,catid=2
typeid=0(所有),typeid=1,typeid=2
...
后台处理,get提交
$cn = cn(array('status','catid','typeid'));//如果以后还有其他字段还可以添加
$cn['username'] = session('member.username');
$list = M('FinancePay')->where($cn)->order('payid desc')->page($p.',10')->select();
if($list) {
foreach($list as $k => $item) {
$list[$k]['dstatus'] = $clang_status[$item['status']];
}
}
其中cn函数为
function cn($item) {
$cn = array();
foreach($item as $value) {
$cn[$value] = I('get.'.$value);
if(!I('get.'.$value)) unset($cn[$value]);
}
return $cn;
}
五、关于安全
尽量用数组方式和I()函数,暂时用这两个就可以搞定sql注入问题了
六、T(..)函数的作用是输出前台include的真实路径,有的时候模版找不到,可以用这个输出
七、语言类配置文件
尽量放到一个lang下
关于thinkphp开发的几种规范(仅限个人)的更多相关文章
- 从" ThinkPHP 开发规范 "看 PHP 的命名规范和开发建议
稍稍水一篇博客,摘抄自Think PHP 的开发规范,很有引导性,我们可以将这些规范实践到原生 PHP 中. 命名规范 使用ThinkPHP开发的过程中应该尽量遵循下列命名规范: 类文件都是以.cla ...
- 【转载】在 2016 年做 PHP 开发是一种什么样的体验?(一)
转自:https://www.v2ex.com/t/312651 在 2016 年做 PHP 开发是一种什么样的体验?(一) 嘿,我最近接到一个网站开发的项目,不过老实说,我这两年没怎么接触编程,听说 ...
- thinkphp开发技巧经验分享
thinkphp开发技巧经验分享 www.111cn.net 编辑:flyfox 来源:转载 这里我给大家总结一个朋友学习thinkphp时的一些笔记了,从变量到内置模板引擎及系统变量等等的笔记了,同 ...
- 【转】在 2016 年做 PHP 开发是一种什么样的体验?(一)
原文: https://www.v2ex.com/t/312651 在 2016 年做 PHP 开发是一种什么样的体验?(一) 嘿,我最近接到一个网站开发的项目,不过老实说,我这两年没怎么接触编程,听 ...
- 使用ThinkPHP开发中MySQL性能优化的最佳21条经验
使用ThinkPHP开发中MySQL性能优化的最佳21条经验讲解,目前,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更 ...
- 【java 理论篇 2】J2EE的13种规范
导读:看完了J2EE的视频,没有什么技术实践,现在就从理论上说明一下J2EE的13种规范,以及现在的自己对它的一个理解.可能会有偏差,但是,算是做为目前的一个记录. 一.13种规范 1.1.JDBC( ...
- iOS开发UI篇—iOS开发中三种简单的动画设置
iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView b ...
- HUDSON(Java开发的一种持续集成工具)
Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. Hudson的特性 1.易于 ...
- 关于thinkphp 开发的网站部署问题
公司一个网站用thinkphp 开发的,由wamp环境移植到lamp环境 出现错误.提示无法生成缓存文件. 原因是thinkphp 的一些目录需要重新生成,所以将一个新的thinkphp 核心包应用后 ...
随机推荐
- JavaScript方法——call和apply
1.相同点: a) 产生的效果或作用完全相同: b) 至少有一个参数: c) 第一个参数必须有且是一个对象(Object),因为就是这个家伙偷懒. 2.不同点: 传递参数的方式. 前提: 1.有两个对 ...
- Monkeyrunner 常用按键
MonkeyRunner常用的按键介绍 Home键:KEYCOD_HOME Back键:KEYCODE_BACK send键:KEYCODE_CALL end键:KEYCODE_ENDCALL ...
- IIS跳转html页面自动识别是PC端还是手机端
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- SpringMVC拦截器
springmvc的拦截器 需求:进行用户的访问控制,判断用户是否登陆,如果登陆进行正常访问,如果没有登陆跳转到登陆页面. 1自定义拦截器类 package org.guangsoft.utils; ...
- React学习笔记-1-什么是react,react环境搭建以及第一个react实例
什么是react?react的官方网站:https://facebook.github.io/react/下图这个就是就是react的标志,非常巧合的是他和我们的github的编辑器Atom非常相似. ...
- C的数值取反操作
今儿在代码中发现一句"return x? ~0 : 0;"对~0这个取反操作相关的知识又还给老师了.一查,查到下面一道题,弄过来贴上. //-------------------- ...
- IP地址,子网掩码,默认网关,DNS服务器详解
为了更深入的学习TCP/IP协议,最近看了不少有关资料,收集整理记录如下,以备后面的使用和方便各位学习: IP地址,子网掩码,默认网关,DNS服务器是什么意思? (一) 问题解析 001. 问: ...
- 利用python的双向队列(Deque)数据结构实现回文检测的算法
#!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving with Algorithms and Da ...
- Jquery Mobile开发以及Js对象动态绑定
动态创建对象并绑定属性: var instantiate = function (Type, args) { var Constructor = function () { }; Constructo ...
- Superslide插件无效的问题
用Superslide像往常那样导入JQ和SuperSlide后,首页焦点图不会变,就像SuperSlide失效了一样,为什么??? 排查了一圈最后发现是JS导入顺序的问题,必须先导入JQ,再导入Su ...