- $result = Db::execute('insert into sb_ad (ad_name, ad_content ,status) values (1,"456",1)');
- dump($result);
更新记录
- $result = Db::execute('update sb_ad set ad_name ="framework"where ad_id = 1');
- dump($result);
查询数据
- $result = Db::query('select * from sb_ad where ad_id = 1');
- print_r($result);
删除数据
- $result = Db::execute('delete from sb_ad where ad_id = 2');
- dump($result);
其它操作
显示数据库列表
- $result = Db::query('show tables from tpshop1');
- print_r($result);
清空数据表
- $result = Db::execute('TRUNCATE table sb_ad');
- dump($result);
- $data = Db::name('user')->select();
- $data = Db::name('user')->where('id',1)->find();
- $data = Db::name('user')->where('id',1)->order('paixu','DESC')->limit(4)->select();
查询: 这里的 where,order 和 limit 方法就被称之为链式操作方法
Db::table('think_user')->where('status',1)->order('create_time')->limit(10)->select();
查询
- Db::table('think_user') ->where('id',1) ->field('id,name,email')->find();
- // 删除
- Db::table('think_user') ->where('status',1) ->where('id',1) ->delete();
- Db::table('think_user')->where('name','like','%thinkphp')->whereOr('title','like','%thinkphp')->find();
子查询李找
- 1.
- // 打印 SQL 语句 当 select 方法的参数为 false 的时候, 表示不进行查询只是返回构建 SQL
- $subQuery2= Db::table('ssc_admin_user')
- ->field('id,name')
- ->where('id','>',10)
- ->select(false);
- SELECT `id`,`name` FROM `ssc_admin_user` WHERE `id`> 10
2, 使用 fetchSql 方法 打印 SQL 语句 fetchSql 方法表示不进行查询而只是返回构建的 SQL 语句, 并且不仅仅支持 select, 而是支持所有的 CURD 查询.
$subQuery = Db::table('think_user') ->field('id,name') ->where('id','>',10) ->fetchSql(true) ->select();
输出 SELECT `id`,`name` FROM `think_user` WHERE `id`> 10
$subQuery = Db::table('think_user')->field('id,name')->where('id','>',10)->buildSql();
输出 SELECT `id`,`name` FROM `think_user` WHERE `id`> 10
4, 使用闭包构造子查询
IN/NOT IN 和 EXISTS/NOT EXISTS 之类的查询可以直接使用闭包作为子查询, 例如:
- Db::table('think_user')
- ->where('id','IN',function($query){
- $query->table('think_profile')->where('status',1)->field('id');
- })
- ->select();
生成的 SQL 语句是
- SELECT * FROM `think_user` WHERE `id` IN ( SELECT `id` FROM `think_profile` WHERE `status` = 1 )
- Db::table('think_user')
- ->where(function($query){
- $query->table('think_profile')->where('status',1);
- },'exists')
- ->find();
生成的 SQL 语句为
SELECT * FROM `think_user` WHERE EXISTS ( SELECT * FROM `think_profile` WHERE `status` = 1 )
json 用法
- Db::table('think_artist')
- ->alias('a')
- ->join('think_work w','a.id = w.artist_id')
- ->join('think_card c','a.card_id = c.id')
- ->select();
表名也可以是一个子查询
- $subsql = Db::table('think_work')->where(['status'=>1])->field('artist_id,count(id) count')->group('artist_id')->buildSql();
- Db::table('think_user')->alias('a')->join([$subsql=> 'w'], 'a.artist_id = w.artist_id')->select();
因 buildSql 返回的语句带有 (), 所以这里不需要在两端再加上 ().
获取某个字段或者某个列的值
- // 获取某个用户的积分
- User::where('id',10)->value('score');
- // 获取某个列的所有值
- User::where('status',1)->column('name');
- // 以 id 为索引
- User::where('status',1)->column('name','id');
- User::where('status',1)->column('id,name'); // 同 tp3 的 getField
来源: http://www.bubuko.com/infodetail-2690568.html