1、都是读取查询数据的功能。
2、find 读取数据表中的一条数据(或者关联数据),主要通过find方法完成,如果查询出错,find方法返回false,如果查询结果为空返回NULL,查询成功则返回一个关联数组(键值是字段名或者别名)。即使满足条件的数据不止一个,find方法也只会返回第一条记录(可以通过order方法排序后查询,查找到一条数据后则不会找下一条数据) 例如:
$User = M("User"); // 实例化User对象
// 查找status值为1name值为think的用户数据
$data = $User->where('name="thinkphp"')->find();
dump($data);
3、select(别名findAll) 读取数据集,其实就是获取数据表中的多行记录(以及关联数据),使用select方法。如果查询出错,select的返回值是false,如果查询结果为空,则返回NULL,否则返回二维数组。例如:
$User = M("User"); // 实例化User对象
// 查找status值为1的用户数据 以创建时间降序(时间戳) 返回10条数据
$list = $User->where('status=1')->order('create_time desc')->limit(10)->select();
find方法查询数据的时候可以配合相关的连贯操作方法,如果查询出错,find方法返回false,如果查询结果为空返回NULL,查询成功则返回一个关联数组(键值是字段名或者别名)。即使满足条件的数据不止一个,find方法也只会返回第一条记录
select方法读取数据集其实就是获取数据表中的多行记录(以及关联数据),如果查询出错,select的返回值是false,如果查询结果为空,则返回NULL,否则返回二维数组。
简单的总结下,find和select都是查询数据的方法,区别在于find不管结果有多少条只返回一条记录(等同于对结果加limit 1),select就是返回所有的结果。
例如find()的结果:
$res = M("user")->find();
array (size=1)
'm_id' => string '14' (length=2)
例如select()的结果:
$res = M("user")->select();
array (size=5)
0 =>
array (size=1)
'm_id' => string '14' (length=2)
1 =>
array (size=1)
'm_id' => string '15' (length=2)
2 =>
array (size=1)
'm_id' => string '16' (length=2)
3 =>
array (size=1)
'm_id' => string '17' (length=2)
4 =>
array (size=1)
'm_id' => string '18' (length=2)