thinkphp笔记

                                                                               tp

1, I方法是ThinkPHP用于更加方便和安全的获取系统输入变量

echo I('get.id'); // 相当于 $_GET['id']
echo I('get.name'); // 相当于 $_GET['name']

2,实例化模型类的方法,三种,直接实例化,D方法和M方法

 上面实例化的时候我们需要传入完整的类名,系统提供了一个快捷方法D用于数据模型的实例化操作。

当 \Home\Model\UserModel 类不存在的时候,D函数会尝试实例化公共模块下面的 \Common\Model\UserModel 类。

D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,

如果不存在,则会实例化系统的\Think\Model基类,同时对于已实例化过的模型,不会重复实例化。

D方法实例化模型类的时候通常是实例化某个具体的模型类,

如果你仅仅是对数据表进行基本的CURD操作的话,使用M方法实例化的话,

由于不需要加载具体的模型类,所以性能会更高。
 M方法实例化的时候,默认情况下是直接实例化系统的\Think\Model类,

如果你的模型类有自己的业务逻辑,M方法是无法支持的,就算是你已经定义了具体的模型类,

M方法实例化的时候是会直接忽略。

我们在实例化的过程中,经常使用D方法和M方法,

这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,

则会自动调用M方法。

                                             数据库相关

3,需要注意的是,ThinkPHP的数据库连接是惰性的,所以并不是在实例化的时候就连接数据库,

而是在有实际的数据操作的时候才会去连接数据库(额外的情况是,在系统第一次实例化模型的时候,

会自动连接数据库获取相关模型类对应的数据表的字段信息)。

4,ThinkPHP find() 方法是和 select() 用法类似的一个方法,

不同之处 find() 查询出来的始终只有一条数据,即系统自动加上了 LIMIT 1 限制。 

5,ThinkPHP 还提供了自动创建数据对象的 create() 方法。

create() 方法将自动收集提交的表单数据并创建数据对象而无需人工干预,

这在表单数据字段非常多的情况下更具优势。

create() 创建的数据对象存放于内存,在执行入库动作(add() 或 save())之前,都可以进行修改。

在上面的例子里,create()方法 的行为和 date()方法 是一致。但 date() 方法只是简单的创建数据对象,

但 create() 方法还具备:

  • 令牌验证
  • 数据自动验证
  • 字段映射支持
  • 字段类型检查
  • 数据自动完成

6,读取数据

读取数据是指读取数据表中的一行数据(或者关联数据),主要通过find方法完成,

读取数据集其实就是获取数据表中的多行记录(以及关联数据),使用select方法

读取字段值其实就是获取数据表中的某个列的多个或者单个数据,最常用的方法是 getField方法

7,修改数据。

save方法的返回值是影响的记录数,如果返回false则表示更新出错,因此一定要用恒等来判断是否更新失败。

为了保证数据库的安全,避免出错更新整个数据表,如果没有任何更新条件,数据对象本身也不包含主键字段的话,save方法不会更新任何数据库的记录。

因此下面的代码不会更改数据库的任何记录

$User->save($data); 
还有一种方法是通过create或者data方法创建要更新的数据对象,然后进行保存操作,

这样save方法的参数可以不需要传入

如果只是更新个别字段的值,可以使用setField方法

8,删除数据

为了避免错删数据,如果没有传入任何条件进行删除操作的话,不会执行删除操作,例如:

$User = M("User"); // 实例化User对象
$User->delete(); 

9,sql查询

query方法用于执行SQL查询操作,如果数据非法或者查询错误则返回false,

否则返回查询结果数据集(同select方法)。

如果你当前采用了分布式数据库,并且设置了读写分离的话,query方法始终是在读服务器执行,

因此query方法对应的都是读操作,而不管你的SQL语句是什么。

execute用于更新和写入数据的sql操作,如果数据非法或者查询错误则返回false ,否则返回影响的记录数。

10标签 volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组, 可以直接使用volist标签进行输出。 Volist标签的name属性表示模板赋值的变量名称,因此不可随意在模板文件中改变。id表示当前的循环变量, 可以随意指定,但确保不要和name属性冲突



Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值