标签:thinkphp3.2 数据库
其实写这篇文章文档API上讲的更详细,但是太分散,所以我把它集中起来,以备后用。
//'配置项'=>'配置值'
'DB_TYPE'=>'mysql', //新版本必须加上这个
'DB_HOST' => '127.0.0.1',
'DB_USER' => 'root',
'DB_PWD' => '123',
'DB_NAME' => 'weibo',
'DB_PREFIX' =>'wei_', //表前缀
$db = D('tablename/modelname'); //modelname一定要存在
$db = M('tablename');$data = array( field1,value1, field2,value2, ...);
$db->create($data);
$db->field('name,email')->create();//只会提交属性为name和email部分的数据$db->field('name,email')->create()->filter('strip_tags');
//filter是数据处理的函数$db->data($data);
namespace Home\Model;
use Think\Model;
class UserModel extends Model{
protected $insertFields = 'name,email'; // 新增数据的时候允许写入name和email字段 protected
$updateFields = 'email'; // 编辑数据的时候只允许写入email字段
}//如果之前调用过create或data方法 ,则不需要传递$data参数 //第二个参数是条件子句,一般在前面用where函数过滤 不需要传递 //第三个参数是 是否覆盖原有数据 add($data='',$options=array(),$replace=false);
addA($dataList,$options=array(),$replace=false) //跟add方法差不多,但是一次插入多条数据 是个二维数组
SELECT * FROM think_user a INNER JOIN think_dept b ON b.user_id= a.id
$Model = M('User');
$Model->alias('a')->join('__DEPT__ b ON b.user_id= a.id')->select();
SELECT username,max(score) FROM think_score GROUP BY user_id,test_time
$this->field('username,max(score)')->group('user_id,test_time')->select();
SELECT username,max(score) FROM think_score GROUP BY user_id HAVING count(test_time)>3
$this->field('username,max(score)')->group('user_id')->having('count(test_time)>3')->select();
select * from think_artist
right join think_work
on think_artist.id = think_work.artist_id
$Model = M('Artist');
//__WORK__和 __CARD__在最终解析的时候会转换为 think_work和 think_card
$Model->join('RIGHT JOIN __WORK__ ON __ARTIST__.id = __WORK__.artist_id')->select();
//或者使用:
$Model->join('__WORK__ ON __artist__.id = __WORK__.artist_id','RIGHT')->select();
//join方法的第二个参数支持的类型包括:INNER LEFT RIGHT FULL。
select name from think_user_0
union
select name from think_user_1
union
select name from think_user_2
$Model->field('name')
->table('think_user_0')
->union(array('field'=>'name','table'=>'think_user_1'))
->union(array('field'=>'name','table'=>'think_user_2'))
->select();SELECT DISTINCT name FROM think_user
$Model->distinct(true)->field('name')->select();
select * from userinfo
where status=1
order by id desc,status asc
limit 5
$Model = M('userinfo');
$Model->where('status=1')
->order('id desc,status') //id desc ,status asc
->limit(5)->select();find($options=array()) //查询所有符合条件的记录的第一条记录
select($options=array()) //查询所有符合条件的记录
getField($field,$sepa=null)
//$field字段名,可以是多个
$list = $User->getField('id,nickname');query($sql,$parse=false) //查询 execute($sql,$parse=false) //执行
$total = count($res);
save($data='',$options=array()) //同add一样,如果在save之前调用过data或create方法 //那么$data方法不用传递 //如果$data中包含主键,那么where可以忽略 //否则如果忽略where的话,将不会更新任何数据
setField($field,$value='') //第一个参数可以是数组$data //该函数会自动调用上面的save方法
setInc($field,$step=1) //字段自增$step setDec($field,$step=1) //字段自减$step
delete($options=array())
//如果指定删除id,可以传入参数
$User->delete('1,2,5'); // 删除主键为1,2和5的用户数据
//不传入参数我们可以通过where函数判断M("member")->getLastSql();'SHOW_PAGE_TRACE'=>true,//配置项
$db->show(''); //调用函数
标签:thinkphp3.2 数据库
原文地址:http://blog.csdn.net/wujiangwei567/article/details/43114089