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){
["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)["Techstring"]=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(info['roleid']=='1'){}//寫法二
if($list[0]['roleid']=='1'){
}
thinkphp的原始sql拼寫,結果也是二維數組