一、链接数据库
1.配置文件定义 applicationdatabase.php
注意:数据表前缀更改,在文件的prefix选项
2.类定义
二、数据库的基本使用
namespace appdemocontroller; use thinkDb; class Ceshi{ public function sql(){ //1.使用系统Db类 $data = Db::table('ceshi')->select(); //2.使用sql语句 $data = Db::query('select * from ceshi'); dump($data); } }
三、数据查询
1.table方式
查所有 Db::table('ceshi')->select();
查一条 Db::table('ceshi')->find();
2.name方式
查所有 Db::name('ceshi')->select();
查一条 Db::name('ceshi')->find();
区别:name方式会在表名前自动加设置的前缀
3.助手函数
db('ceshi')->select();
db('ceshi')->find();
注意:助手函数同样会加前缀
四、条件查询
注意:条件的顺序可以随意,如6
1.范围查询
$data = db('ceshi') ->where('id','>','1') ->where('id','<','3') ->select(); dump($data);
2.多条件查询(并且 where)
$data = db('ceshi') ->where('id','>','1') ->where('pin','=','lisi') ->select(); dump($data);
3.多条件查询(或者 whereOr)
$data = db('ceshi') ->where('id','=','1') ->whereOr('id','=','3') ->select(); dump($data);
4.模糊查询
$data = db('ceshi') ->where('id','>','1') ->where('pin','like','li%') ->select(); dump($data);
5.limit截取查询
$data = db('ceshi') ->where('id','>','0') //跳过几条取几条,一个参数为显示几条 ->limit(1,2) ->select(); dump($data);
6.order排序
$data = db('ceshi') ->where('id','>','0') //跳过几条取几条,一个参数为显示几条 ->limit(1,2) ->order('id','desc') ->select(); dump($data);
7.field查询字段
$data = db('ceshi') ->where('id','>','0') //查询的字段名 ->field(['id','pin']) // //或者,第二种写法 // ->field("id,pin") ->select(); dump($data);
8.更改字段名
$data = db('ceshi') ->where('id','>','0') //将显示的字段名id更改为uid ->field(['id'=>'uid','pin']) // //或者,第二种写法 // ->field("id uid,pin") ->select(); dump($data);
9.系统函数
$data = db('ceshi') ->where('id','>','0') //将显示的字段名id更改为uid ->field(['count(*)'=>'num','pin']) // //或者,第二种写法 // ->field("count(*) as num,pin") ->select();
10.排除字段
$data = db('ceshi') ->where('id','>','0') //不显示name字段 ->field(['name'],true) // //或者,第二种写法 // ->field("name",true) ->select();
11.分页查询
$data = db('ceshi') ->where('id','>','0') //显示,第几页的,几条 ->page("2,2") ->select();
12.group 分组查询
$data = db('ceshi') ->where('id','>','0') ->group('id') ->select();
13.having 过滤查询
->having("id > 2")
14.多表联查
$data = db('ceshi') //查找的字段 ->field('ceshi.*,ceshi2.name') //连表2,on后面的条件,第三参数可不写,left和right为左连接,右连接 ->join('ceshi2','ceshi1.pin = ceshi2.pin','left') ->select();
15.表名起别名 (表名后 空格 别名)
16.参数绑定
$data = db('ceshi') //占位 ->where('id',':id') //参数绑定 ->bind(["id"=>"1"]) ->select();
17.数据统计
->sum('字段名')
可选sum max min avg count等
五、数据增加
$sql = [ ['id'=>'5','pin'=>'zhaoliu','name'=>'赵六'], ['id'=>'6','pin'=>'zhaoliu','name'=>'赵六'] ] $data = db('ceshi') ->insertAll($sql);
若插入一条,则$sql 写一维数组, insertAll改为insert
注意:插入数据的字段名必须和数据库一致
六、数据更新
$data = db('ceshi') //等号可不写 ->where('id',4) //更改的数据 ->update(['name'=>'a','pin'=>'a']);
自增
->setInc('字段名')
自减
->setDec('字段名',每次减几)
七、删除数据(四种方式,不带字段名的为id主键的值)
->where('id',1)->delete()
->where("id in(1,2,3)")->delete()
->delete([1,2,3])
->where("id>2 and id <4")->delete()