php技术博客
让天下没有搞不定的bug~

新版TP的field(‘*’)和field(true)的用法区别

        今天小涛浏览tp的官方网站时发现了一个问题:最新的SVN版本增加了field(true)用法支持,和field(‘*’)用法的区别在于 field(true)是显式的获取数据表的全部字段,下面举例说明一下:
最新的SVN版本增加了field(true)用法支持,和field(‘*’)用法的区别在于
field(true)是显式的获取数据表的全部字段,举例说明:
think_data表有id,name,data,status 4个字段,我们使用

$model = M(‘Data’);

$model->field(‘*’)->select();

// 或者

// $model->select();

最后生成的SQL语句是

SELECT * FROM think_data

而如果使用

$model->field(true)->select();

的话,生成的SQL语句则是:

SELECT id,name,data,status FROM think_data

也许有人认为不是一样的结果么,O(∩_∩)O~对于高性能的设计来说 就有区别
新版还增加了字段排除的用法,例如:

$model->field(‘status,name’,true)->select();

表示排除数据表中的status和name字段,最后生成的SQL语句就变成了:

SELECT id,data FROM think_data

所以,以后自己就可以根据性能方面来合理的使用field字段了!

赞(0)
未经允许不得转载:PHP技术博客 » 新版TP的field(‘*’)和field(true)的用法区别