$about=M('document');
$abouts=$about->where('id=2')->select();
$abouts2=$about->where('id=2')->find();
var_dump($abouts);
var_dump($abouts2);
输出结果:
array (size=1)
=>
array (size=24)
'id' => string '2' (length=1)
'uid' => string '1' (length=1)
'name' => string '' (length=0)
'title' => string '公司简介' (length=12)
'category_id' => string '39' (length=2)
'group_id' => string '0' (length=1)
'description' => string '公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介' (length=156)
'root' => string '0' (length=1)
'pid' => string '0' (length=1)
array (size=24)
'id' => string '2' (length=1)
'uid' => string '1' (length=1)
'name' => string '' (length=0)
'title' => string '公司简介' (length=12)
'category_id' => string '39' (length=2)
'group_id' => string '0' (length=1)
'description' => string '公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介公司简介' (length=156)
'root' => string '0' (length=1)
'pid' => string '0' (length=1)
从上面的代码可以看出,find()返回一个一维数组,select()返回一个二维数组,所以在取值时有所不同,一维数组取值用$data["id"],二维数组取值用$data[0]["id"],由于一开始没了解这个用法,调试一天也取不值,最后有var_dump()方法才看到两个方法的不同所在!
select()可以查询所有记录,而find()永远只返回一条记录。 如果你的语句返回多条记录则find()会出问题,find()适合selectByPk。
$about=M('document');
$abouts=$about->where('id=2')->select();
$abouts2=$about->where('id=2')->find();
// var_dump($abouts);
// var_dump($abouts2);
if($abouts){
$article = M('document_article');
//$info = $article->find($abouts['id']);
$info=$article->where('id='.$abouts2['id'])->find();
}
$this->assign('wzjj',$info);