zoukankan      html  css  js  c++  java
  • TP5语法

    
    
    //如果设置了数据表前缀参数的话,可以使用
    
    Db::name('user')->where('id',1)->find();
    Db::name('user')->where('status',1)->select();
    //如果你的数据表没有使用表前缀功能,那么name和table方法的一样的效果。
    在find和select方法之前可以使用所有的链式操作方法。
    
    默认情况下,find和select方法返回的都是数组。
    //助手函数
    系统提供了一个db助手函数,可以更方便的查询:
    db('user')->where('id',1)->find();
    db('user')->where('status',1)->select();
    //值和列查询
    查询某个字段的值可以用
    
    // 返回某个字段的值
    Db::table('think_user')->where('id',1)->value('name');
    //value 方法查询结果不存在,返回 null
    
    //查询某一列的值可以用
    
    // 返回数组
    Db::table('think_user')->where('status',1)->column('name');
    // 指定索引
    Db::table('think_user')->where('status',1)->column('name','id');
    //column 方法查询结果不存在,返回空数组
    
    
    
    //查询一个数据专用
    DB::table('think_user')->where('id',1)->find();
    查询的结果不存在,返回null
    //查询数据集使用:
    DB::table('think_user')->where('id',1)->select();
    select 查询结构不存在,返回空数组
    //添加数据

    添加一条数据

    使用 Db 类的 insert 方法向数据库提交数据

    $data = ['foo' => 'bar', 'bar' => 'foo'];
    Db::table('think_user')->insert($data);

    如果你在database.PHP配置文件中配置了数据库前缀(prefix),那么可以直接使用 Db 类的 name 方法提交数据

    Db::name('user')->insert($data);

    insert 方法添加数据成功返回添加成功的条数,insert 正常情况返回 1

    添加数据后如果需要返回新增数据的自增主键,可以使用getLastInsID方法:

    Db::name('user')->insert($data);
    $userId = Db::name('user')->getLastInsID();


    或者直接使用insertGetId方法新增数据并返回主键值:

    Db::name('user')->insertGetId($data);


    insertGetId 方法添加数据成功返回添加数据的自增主键

    添加多条数据

    添加多条数据直接向 Db 类的 insertAll 方法传入需要添加的数据即可

    $data = [
        ['foo' => 'bar', 'bar' => 'foo'],
        ['foo' => 'bar1', 'bar' => 'foo1'],
        ['foo' => 'bar2', 'bar' => 'foo2']
    ];
    Db::name('user')->insertAll($data);

    insertAll 方法添加数据成功返回添加成功的条数

     

    助手函数

    
    
    // 添加单条数据
    db('user')->insert($data);
    
    // 添加多条数据
    db('user')->insertAll($list);

    更新数据表中的数据

    Db::table('think_user')
        ->where('id', 1)
        ->update(['name' => 'thinkphp']);

    如果数据中包含主键,可以直接使用:

    Db::table('think_user')
        ->update(['name' => 'thinkphp','id'=>1]);

    update 方法返回影响数据的条数,没修改任何数据返回 0

    如果要更新的数据需要使用SQL函数或者其它字段,可以使用下面的方式:

    Db::table('think_user')
        ->where('id', 1)
        ->update([
            'login_time'  => ['exp','now()'],
            'login_times' => ['exp','login_times+1'],
        ]);


    更新某个字段的值:

    Db::table('think_user')
        ->where('id',1)
        ->setField('name', 'thinkphp');


    高级查询
    快捷查询方式是一种多字段相同查询条件的简化写法,可以进一步简化查询条件的写法,在多个字段之间用 | 分割表示 OR 查询,用&分割表示AND查询,可以实现下面的查询
    Db::table('think_user')
    ->where('name|title','like','thinkphp%')
    ->where('create_time&update_time','>',0)
    ->find();
    生成的查询sql是
    select * from 'think_user' where ('name' like 'thinkphp%' OR 'title' LIKE 'thinkphp%') AND ('create_time' > 0 AND 'update_time' > 0 ) LIMIT 1

     

    区间查询
    区间查询是一种同一字段多个查询条件的简化写法,例如
    Db::table('think_user')
    ->where('name',['like','thinkphp%'],['like','%thinkphp'])
    ->where('id',['>',0],['<>',10],'or')
    ->find();
    生成的sql语句为
    select * from 'think_user' where ('name' LIKE 'thinkphp%' AND 'name' LIKE '%thinkphp') AND ('id' > 0 OR 'id' <> 10) LIMIT 1
    区间查询的查询条件必须使用数组定义方式,支持所有的查询表达式。

    批量查询
    可以进行多个条件的批量条件查询定义
    Db::table('think_user')
    ->where([
    'name' => ['like','thinkphp%'],
    'title'=> ['like','%thinkphp'],
    'id' => ['>',0]
    'status' => 1
    ])

    ->select();

    生成的sql语句为

    SELECT *FROM 'think_user' WHERE 'name' LIKE 'thinkphp%' AND 'title' LIKE '%thinkphp' and 'id' > 0 AND 'status' = 1

    世界上最美的风景,是自己努力的模样
  • 相关阅读:
    python2.7 pip
    opencv
    运维url收集
    转 string和byte[]的转换 (C#)
    Thrift
    Oracle AWR
    并发编程
    LED相关
    java mail 使用 gmail smtp 发送邮件
    jquery动画总结
  • 原文地址:https://www.cnblogs.com/xiong-hua/p/11833914.html
Copyright © 2011-2022 走看看