在Thinkphp中,已经知道一个字段,怎么把同一个表里的另一个字段查出来

在Thinkphp中,已经知道一个字段,怎么把同一个表里的另一个字段查出来

ThinkPHP内置的ORM和ActiveRecord模式实现了方便的数据存取操作,而且新版增加的连贯操作功能更是让这个数据操作更加清晰,但是ThinkPHP仍然保留了原生的SQL查询和执行操作支持,为了满足复杂查询的需要和一些特殊的数据操作,SQL查询的返回值因为是直接返回的Db类的查询结果,没有做任何的处理。而且可以支持查询缓存。主要包括下面两个方法:

1、query方法

query方法是用于sql查询操作,和select一样返回数据集,例如:

$Model = new Model() // 实例化一个model对象 没有对应任何数据表

$Model->query("select * from think_user where status=1");

2、execute方法

用于更新和写入数据的sql操作,返回影响的记录数,例如:

$Model = new Model() // 实例化一个model对象 没有对应任何数据表

$Model->execute("update think_user set name='thinkPHP' where status=1");

关于原生SQL操作的一点补充

通常使用原生SQL需要手动加上当前要查询的表名,如果你的表名以后会变化的话,那么就需要修改每个原生SQL查询的sql语句了,针对这个情况,TP还提供了一个小的技巧来帮助解决这个问题。

例如:

$model = M("User");

$model->query('select * from __TABLE__ where status>1');

我们这里使用了__TABLE__ 这样一个字符串,系统在解析的时候会自动替换成当前模型对应的表名,这样就可以做到即使模型对应的表名有所变化,仍然不用修改原生的sql语句。
======================
还有别的方法请查看官方手册 搜索关键字查询即可
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-19
$memberDao = D('Member');
$memberList = $memberDao->where("id='".$_GET['id']."'")->select();
已知id的的起哦member其他字段,想得到指定字段的话可以这样
比如得到username、id和emaill
$memberList = $memberDao->field('username,id,email')->where("id='".$_GET['id']."'")->select();
相似回答