一、只要设计到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开发的几种规范(仅限个人)的更多相关文章

  1. 从" ThinkPHP 开发规范 "看 PHP 的命名规范和开发建议

    稍稍水一篇博客,摘抄自Think PHP 的开发规范,很有引导性,我们可以将这些规范实践到原生 PHP 中. 命名规范 使用ThinkPHP开发的过程中应该尽量遵循下列命名规范: 类文件都是以.cla ...

  2. 【转载】在 2016 年做 PHP 开发是一种什么样的体验?(一)

    转自:https://www.v2ex.com/t/312651 在 2016 年做 PHP 开发是一种什么样的体验?(一) 嘿,我最近接到一个网站开发的项目,不过老实说,我这两年没怎么接触编程,听说 ...

  3. thinkphp开发技巧经验分享

    thinkphp开发技巧经验分享 www.111cn.net 编辑:flyfox 来源:转载 这里我给大家总结一个朋友学习thinkphp时的一些笔记了,从变量到内置模板引擎及系统变量等等的笔记了,同 ...

  4. 【转】在 2016 年做 PHP 开发是一种什么样的体验?(一)

    原文: https://www.v2ex.com/t/312651 在 2016 年做 PHP 开发是一种什么样的体验?(一) 嘿,我最近接到一个网站开发的项目,不过老实说,我这两年没怎么接触编程,听 ...

  5. 使用ThinkPHP开发中MySQL性能优化的最佳21条经验

    使用ThinkPHP开发中MySQL性能优化的最佳21条经验讲解,目前,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更 ...

  6. 【java 理论篇 2】J2EE的13种规范

    导读:看完了J2EE的视频,没有什么技术实践,现在就从理论上说明一下J2EE的13种规范,以及现在的自己对它的一个理解.可能会有偏差,但是,算是做为目前的一个记录. 一.13种规范 1.1.JDBC( ...

  7. iOS开发UI篇—iOS开发中三种简单的动画设置

    iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView b ...

  8. HUDSON(Java开发的一种持续集成工具)

    Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. Hudson的特性 1.易于 ...

  9. 关于thinkphp 开发的网站部署问题

    公司一个网站用thinkphp 开发的,由wamp环境移植到lamp环境 出现错误.提示无法生成缓存文件. 原因是thinkphp 的一些目录需要重新生成,所以将一个新的thinkphp 核心包应用后 ...

随机推荐

  1. celery 异步任务小记

    这里有一篇写的不错的:http://www.jianshu.com/p/1840035cb510 自己的"格式化"后的内容备忘下: 我们总在说c10k的问题, 也做了不少优化, 然 ...

  2. win8环境安装.net3.5

    材料:光盘镜像(必须原版镜像) 1,以管理员身份运行CMD 2,打开镜像,找到盘符比如我的是G盘 3, 输入 X代表你的ISO镜像的盘符 dism.exe /online /enable-featur ...

  3. Metro下读取txt文件

    情况1:txt是Utf8格式的. 读取代码:IList<String> lines = await Windows.Storage.FileIO.ReadLinesAsync(file); ...

  4. java 深入技术六(Map)

    Map 1.map概述 map.put(key,value)里面存放的是两个相关的数据,key=value键值对 Map集合中存放的是键值对(put(key,value)),用get(key)获取集合 ...

  5. textarea输入回车,前台jsp不回车问题解决

    jsp引入标签: <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"% ...

  6. .NET LINQ 转换数据类型

    转换数据类型      转换方法更改输入对象的类型.      LINQ 查询中的转换运算可用于各种应用程序.下面是一些示例: Enumerable.AsEnumerable<TSource&g ...

  7. SVN上传文件提示磁盘空间不足的问题

    SVN上传文件大于100M,提示:Commit failed (details follow):While preparing 'E:\AFCData\tjsc20db_table.sql' for ...

  8. PHP获取当前url路径的函数及服务器变量:QUERY_STRING、REQUEST_URI、SCRIPT...

    1,$_SERVER["QUERY_STRING"]说明:查询(query)的字符串 2,$_SERVER["REQUEST_URI"]说明:访问此页面所需的U ...

  9. Nginx 反代理其他搜索引擎

    反向代理 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客 ...

  10. Failed creating java D:/jre6/bin/client/jvm.dll

    Failed creating java D:/jre6/bin/client/jvm.dll 标记一下 坑爹啊! 我特么装了一个64位的eclipse 结果报错 目录下确实有这个文件. 我想说  6 ...