thinkphp的select和find的区别

Posted 傲世狂枫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp的select和find的区别相关的知识,希望对你有一定的参考价值。

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"],由于一开始没了解这个用法,调试一天也取不值,最后有dump方法才看到两个方法的不同所在!

以上是关于thinkphp的select和find的区别的主要内容,如果未能解决你的问题,请参考以下文章

[转]ThinkPHP中实例化对象M()和D()的区别,select和find的区别

11-PHP代码审计——thinkphp3.2.3 find,select,delete注入漏洞

ThinkPHP 模型方法 getField() 和 select() 使用技巧

thinkphp3.2.3 查询时使用where+select查询出来的比find查询多一个空数组

ThinkPHP3.2.3 find注入

ThinkPHP中foreach和volist的区别