首頁  >  文章  >  後端開發  >  thinkphp的select和find的差別

thinkphp的select和find的差別

高洛峰
高洛峰原創
2016-11-29 10:22:47935瀏覽

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拼寫,結果也是二維數組


🎜🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn