1.读取数据是指读取数据表中的一行数据(或者关联数据),主要通过find方法完成,例如:
$User = M(“User”); // 实例化User对象
// 查找status值为1name值为think的用户数据
$data =
U
s
e
r
−
>
w
h
e
r
e
(
′
s
t
a
t
u
s
=
1
A
N
D
n
a
m
e
=
"
t
h
i
n
k
p
h
p
"
′
)
−
>
f
i
n
d
(
)
;
d
u
m
p
(
User->where('status=1 AND name="thinkphp"')->find(); dump(
User−>where(′status=1ANDname="thinkphp"′)−>find();dump(data);
find方法查询数据的时候可以配合相关的连贯操作方法,其中最关键的则是where方法。
如果查询出错,find方法返回false,如果查询结果为空返回NULL,查询成功则返回一个关联数组(键值是字段名或者别名)。 如果上面的查询成功的话,会输出:
array (size=3)
‘name’ => string ‘thinkphp’ (length=8)
‘email’ => string ‘thinkphp@gmail.com’ (length=18)
‘status’=> int 1
即使满足条件的数据不止一个,find方法也只会返回第一条记录(可以通过order方法排序后查询)。
还可以用data方法获取查询后的数据对象(查询成功后)
$User = M(“User”); // 实例化User对象
// 查找status值为1name值为think的用户数据
U
s
e
r
−
>
w
h
e
r
e
(
′
s
t
a
t
u
s
=
1
A
N
D
n
a
m
e
=
"
t
h
i
n
k
p
h
p
"
′
)
−
>
f
i
n
d
(
)
;
d
u
m
p
(
User->where('status=1 AND name="thinkphp"')->find(); dump(
User−>where(′status=1ANDname="thinkphp"′)−>find();dump(User->data());
2.读取数据集其实就是获取数据表中的多行记录(以及关联数据),使用select方法,使用示例:
$User = M(“User”); // 实例化User对象
// 查找status值为1的用户数据 以创建时间排序 返回10条数据
$list = $User->where(‘status=1’)->order(‘create_time’)->limit(10)->select();
如果查询出错,select的返回值是false,如果查询结果为空,则返回NULL,否则返回二维数组。
TP order排序
用$model =M(‘test’)->order(‘id desc’)->limit(0,10)->select();查询的结果
数据查询方法支持的连贯操作方法有:
连贯操作 作用 支持的参数类型
where 用于查询或者更新条件的定义 字符串、数组和对象
table 用于定义要操作的数据表名称 字符串和数组
alias 用于给当前数据表定义别名 字符串
field 用于定义要查询的字段(支持字段排除) 字符串和数组
order 用于对结果排序 字符串和数组
group 用于对查询的group支持 字符串
having 用于对查询的having支持 字符串
join 用于对查询的join支持 字符串和数组
union 用于对查询的union支持 字符串、数组和对象
distinct 用于查询的distinct支持 布尔值
lock 用于数据库的锁机制 布尔值
cache 用于查询缓存 支持多个参数
relation 用于关联查询(需要关联模型支持) 字符串
result 用于返回数据转换 字符串
scope 用于命名范围 字符串、数组
bind 用于数据绑定操作 数组
comment 用于SQL注释 字符串
fetchSql 不执行SQL而只是返回SQL 布尔值