thinkphp是比较好的php开发框架,能比较快速的开发mvc架构的管理系统,我们需要用到 select()和find()方法,两个方法都能返回数据集数组,但有什么不同呢?先看一下我的代码对比:
$tech=m('techlevel','hr_cs_','db_config2');
$data=$tech->where('id=1')->find();
dump($data);
$data=$tech->where('id=1')->select();
dump($data);
结果
array(6){
[id]=>int(1)
[techlevel]=>string(2)10
[remark]=>string(4)��
[createdate]=>string(19)2013-03-1415:14:38
[createby]=>string(5)admin
[row_number]=>string(1)1
}
array(1){
[0]=>array(6){
[id]=>int(1)
[techlevel]=>string(2)10
[remark]=>string(4)��
[createdate]=>string(19)2013-03-1415:14:38
[createby]=>string(5)admin
[row_number]=>string(1)1
}
}
从上面的代码可以看出,find()返回一个一维数组,select()返回一个二维数组,所以在取值时有所不同,一维数组取值用$data[techlevel],二维数组取值用$data[0][techlevel],由于一开始没了解这个用法,调试一天也取不值,最后有dump方法才看到两个方法的不同所在!
另外,
$model=m();
$sql='selectroleidfrom'.c(db_prefix).'adminwhereuserid='.session('userid').'';
$list=$model->query($sql);
//写法一
foreach($listas&$info){
if(info['roleid']=='1'){
}
//写法二
if($list[0]['roleid']=='1'){
}
thinkphp的原始sql拼写,结果也是二维数组