关于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 核心包应用后 ...
随机推荐
- 安装配置LDAP遇到的问题
问题1:安装完启动ldap服务报错: ldap: unrecognized service? 原因在于新版的openldap将服务名改为了slapd,使用service slapd start即可启动 ...
- C Primer Plus_第5章_运算符、表达式和语句_编程练习
Practice 1. 输入分钟输出对应的小时和分钟. #include #define MIN_PER_H 60 int main(void) { int mins, hours, minutes; ...
- tp5 中 model 的更新方法
// 过滤非数据表字段更新 public function update(Request $request){ $user = model('User'); $result = $user -> ...
- 同步异步,阻塞非阻塞 和nginx的IO模型
同步与异步 同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication).所谓同步,就是在发出一个*调用*时,在没有得 ...
- [转]字符编码笔记:ASCII,Unicode和UTF-8
转自:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html 作者: 阮一峰 日期: 2007年10月28日 今天中午, ...
- ASP.NET知识总结(2.对比Get和Post提交方式)
2.对比Get和Post提交方式 get:<1>在地址栏中通过?key1=value1&key2=value2...的方式传值 <2>传递的数据用户可以直接在url中看 ...
- Win10 UWP vs add github
vs github 插件 教程 官方教程 点击查看存储库,跳转到 DemoHttp for github
- [译]:Orchard入门——使用WebMatrix管理Orchard网站
原文链接:Working with Orchard in WebMatrix WebMatrix--微软一站式Web开发工具,包括网站的创建.编辑以及发布--不过现在微软更推荐VS code .Web ...
- Redis学习笔记(3) Redis基础类型及命令之二
1. 集合类型 集合类型与列表类型有很多相似之处,但二者的区别在于:前者具有唯一性,但不具有有序性:后者具有有序性,但不具有唯一性.集合类型的常用操作是向集合中加入或删除元素.判断某个元素是否存在等, ...
- 【转载】科研ppt制作的体会
转载自实验室陈家雷学长发在bbs 上的帖子,讲解了自己制作ppt的心得体会.学习下. 附件中是我昨天晚上我的组会ppt的pdf版本,另外我对ppt的制作有点自己的理解,基本上都是去年暑假在Harvar ...