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-14 15: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-14 15:14:38"
["CreateBy"] => string(5) "admin"
["ROW_NUMBER"] => string(1) "1"
}
}
從上面的代碼能夠看出,find()返回一個一維數組,select()返回一個二維數組,因此在取值時有所不一樣,函數
一維數組取值用 $data["TechLevel"],性能
二維數組取值用 $data[0]["TechLevel"],測試
二者還有一個重要的不一樣之處:讀取數據的操做其實和數據集的相似,select可用的全部連貫操做方法也均可以用於find方法,區別在於find方法最多隻會返回一條記錄,所以limit方法對於find查詢操做是無效的。因爲一開始沒了解這個用法,調試一天也取不值,最後有dump方法纔看到兩個方法的不一樣所在!