thinkphp是比較好的php開發框架,能(néng)比較快速的開發MVC架構的管理(lǐ)系統,我們需要用(yòng)到 select()和find()方法,兩個方法都能(néng)返回數據集數組,但有(yǒu)什麽不同呢(ne)?先看一下我的代碼對比:
$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"
}
}
從上面的代碼可(kě)以看出,find()返回一個一維數組,select()返回一個二維數組,所以在取值時有(yǒu)所不同,一維數組取值用(yòng)$data["TechLevel"],二維數組取值用(yòng)$data[0]["TechLevel"],由于一開始沒了解這個用(yòng)法,調試一天也取不值,最後有(yǒu)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拼寫,結果也是二維數組