return返回
return 不能返回数组
$data = [a,c,d];
return json($data);
return json($data,201); 改状态码
return xml($data);
return $this->fetch();
return view();
跳转
$this->success('成功','index/hello');
$this->error('失败','/admin/index/index.html?name=lisa&sex=0');
$this->redirect('同上');
数据库基本操作:
查询构造器:CURD操作可直接传数组
1、表名必须带前缀的完整表名;
Db::table('tp_data') ->insert(['id'=>6,'name'=>'thinkphp']);
Db::table('tp_data') ->where('id',2)-update(['date' => '2']);
2、表名不带前缀;
Db::name('data')->.....
3、助手函数,也不带前缀,还不用引入,直接用
db('data')->......
事务的应用
首先保证存储引擎为InnoDB
需要把要执行的操作放进闭包,即可自动完成事务
Db::transaction(function (){
Db::table('tp_data')->delete(2);
Db::table('tp_data')->insert(['id' => 9,'name'=>'thinkphp','status'='1']);
});
手动控制事务的提交
//启动食事务
Db::startTrans();
try{
Db::table('tp_data')->delete(2);
Db::table('tp_data')->insert(['id' => 9,'name'=>'thinkphp','status'='1']);
//提交事务
Db::commit();
} catch( \Exception $e) {
//回滚事务
Db::rollback();
}
查询语言:
Db::name('data')->where('id','between',[1,9])->select();
Db::name('data')->where('name',null);
Db::name('data')->where('id','exp',"in(1,2,3,4)")->select();
Db::name('data')->where('id','exp',">1")->select();
Db::name('data')->where('id','exp',">1 and name='zhangsan'")->select();
Db::name('data')->where('id','>=',1)
->where('name','like','%php%')
->select();//两个where为and关系
Db::name('data')->where(['id'=>['>='1],
'name'=>['like','%php%']
])
->select();
批量查询
$res = Db::name('data')
->where([
'id'=>[['in',[5,6,7,8]],['<='1],'or'],
'name'=>['like','%php%'],
])
->limit(10)
->select();
快捷查询:
$res = Db::name('data')
->where('id&status','>',0) ('id | status','>' 0 );
->limit(10)
->select();
视图查询
$res = Db::view('table1','id,name,status')
->view('table2',['nickname'=>'user_name','mobile','email'],table2.user_id=table1.id)
->order('id desc')
->select();
Query 对象使用
$query = new \think\db\Query;
$query = name('data')->where('name','like','%php%')
->where('id','>=','1')
->limit(10);
$res = Db::select($query);
网友评论