ThinkPHP提供了灵活和方便的数据操作方法,不仅实现了对数据库操作的四大基本操作(CURD):创建、读取、更新和删除的实现,还内置了很多实用的数据操作方法,提供了ActiveRecords模式的最佳体验。
新建记录
PHP 代码
1.
2.
3.
4.
PHP 代码
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
一般情况下,应用中的数据对象不太可能通过手动赋值的方式写入,而是有个数据对象的创建过程。ThinkPHP提供了一个create方法来创建数据对象,然后进行其它的新增或者编辑操作。
PHP 代码
1.
2.
3.
Create方法支持从其它方式创建数据对象,例如,从其它的数据对象,或者数组等
PHP 代码
1.
2.
3.
4.
5.
6.
支持新增多条记录
PHP 代码
1.
2.
3.
4.
5.
6.
在MySql数据库下面,会自动使用一条SQL语句实现多数据的插入。
查询记录
读取数据库的记录我觉得是数据库操作中的最有意思的一件事情了,写过文本数据库的人都知道,保存和删除数据不难(无非是规范和效率问题),难在可以通过各种方式来查找需要的数据。ThinkPHP通过各种努力,让数据库的查询操作变得轻而易举,也让ThinkPHP变得富有内涵。
ThinkPHP有一个非常明确的约定,就是单个数据查询和多个数据查询的方法是分开的,或者你会认为有时候自己也不知道要查询的数据是单个还是多个,但是有一点是明确的,你需要的是返回一个数据还是希望返回的是一个数据集。因为对两种类型的返回数据的操作方式是截然不同的,无论何种方式的返回,我们都可以直接在模型对象里面操作,当然也一样可以作为数据传递给你需要的变量。
先举个最简单的例子,假如我们要查询主键为8的某个用户记录,我们可以使用下面的一些方法:
PHP 代码
1.
这个作为查询语言来说是最为直观的,如果查询成功,查询的结果直接保存在当前的数据对象中,在进行下一次查询操作之前,我们都可以提取,例如获取查询的结果数据:
PHP 代码
1.
2.
遍历查询到的数据对象属性
PHP 代码
1.
2.
3.
// 或者进行相关的数据更改和保存操作
也可以用变量保存下来以便随时使用。
PHP 代码
1.
对于上面的查询条件,我们还可以使用getById来完成相同的查询
PHP 代码
1.
需要注意的是,对于find方法来说,即使查询结果有多条记录,也只会返回符合条件的第一条记录,如果要返回符合要求的所有记录,请使用findAll方法。
PHP 代码
1.
2.
3.
4.
5.
6.
更多的查询操作请参考后面章节的内容。
更新记录
了解了查询记录后,更新操作就显得非常简单了。
//
PHP 代码
1.
2.
3.
4.
5.
如果不是使用数据对象的方式来保存,可以传入要保存的数据和条件
PHP 代码
1.
2.
3.
除了save方法外,你还可以使用setField方法来更新特定字段的值,例如:
PHP 代码
1.
同样可以支持对字段的操作
PHP 代码
1.
2.
3.
删除记录