zoukankan      html  css  js  c++  java
  • ThinkPHP5.0数据库基本操作

    一、查询数据操作如下:

    db('user')->where('id',1)->find();//查询一条数据
    db('user')->where('status',1)->select();//查询多条数据

    二、添加数据操作如下:

    // 添加单条数据
    $data = ['foo' => 'bar', 'bar' => 'foo'];
    db('user')->insert($data);
    
    // 添加多条数据
    $list = [
        ['foo' => 'bar', 'bar' => 'foo'],
        ['foo' => 'bar1', 'bar' => 'foo1'],
        ['foo' => 'bar2', 'bar' => 'foo2']
    ];
    db('user')->insertAll($list);

    三、修改数据操作如下:

    // 更新数据表中的数据
    db('user')->where('id',1)->update(['name' => 'thinkphp']);
    // 更新某个字段的值
    db('user')->where('id',1)->setField('name','thinkphp');
    // 自增 score 字段
    db('user')->where('id', 1)->setInc('score');
    // 自减 score 字段
    db('user')->where('id', 1)->setDec('score');

    四、删除数据操作如下:

    // 根据主键删除
    db('user')->delete(1);
    // 条件删除    
    db('user')->where('id',1)->delete();

    五、查询条件方法:

    where方法
    可以使用where方法进行AND条件查询:
    Db::table('think_user')
        ->where('name','like','%thinkphp')
        ->where('status',1)
        ->find();
    多字段相同条件的AND查询可以简化为如下方式:
    Db::table('think_user')
        ->where('name&title','like','%thinkphp')
        ->find();
    whereOr方法
    使用whereOr方法进行OR查询:
    Db::table('think_user')
        ->where('name','like','%thinkphp')
        ->whereOr('title','like','%thinkphp')
        ->find();
    多字段相同条件的OR查询可以简化为如下方式:
    Db::table('think_user')
        ->where('name|title','like','%thinkphp')
        ->find();
    混合查询
    where方法和whereOr方法在复杂的查询条件中经常需要配合一起混合使用,下面举个例子:
    
    $result = Db::table('think_user')->where(function ($query) {
        $query->where('id', 1)->whereor('id', 2);
    })->whereOr(function ($query) {
        $query->where('name', 'like', 'think')->whereOr('name', 'like', 'thinkphp');
    })->select();
    生成的sql语句类似于下面:
    
    SELECT * FROM `think_user` WHERE  (  `id` = 1 OR `id` = 2 ) OR (  `name` LIKE 'think' OR `name` LIKE 'thinkphp' )
    注意闭包查询里面的顺序,而且第一个查询方法用where或者whereOr是没有区别的。
    getTableInfo方法
    使用getTableInfo可以获取表信息,信息类型 包括 fields,type,bind,pk,以数组的形式展示,可以指定某个信息进行获取
    
    // 获取`think_user`表所有信息
    Db::getTableInfo('think_user');
    // 获取`think_user`表所有字段
    Db::getTableInfo('think_user', 'fields');
    // 获取`think_user`表所有字段的类型
    Db::getTableInfo('think_user', 'type');
    // 获取`think_user`表的主键
    Db::getTableInfo('think_user', 'pk');

    七、查询表达示如下:

    where('字段名','表达式','查询条件');
    whereOr('字段名','表达式','查询条件');
    表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:

    例子:

    where('id','eq',100);
    where('id','=',100);

    七、数组查询操作如下:

    $map['name'] = 'thinkphp';
    $map['status'] = 1;
    // 把查询条件传入查询方法
    Db::table('think_user')->where($map)->select(); 
    
    // 助手函数
    db('user')->where($map)->select();

    使用字符串条件直接查询和操作,例如:

    Db::table('think_user')->where('type=1 AND status=1')->select(); 

    使用字符串条件的时候,建议配合预处理机制,确保更加安全,例如:

    Db::table('think_user')->where("id=:id and username=:name")->bind(['id'=>[1,PDO::PARAM_INT],'name'=>'thinkphp'])->select();
  • 相关阅读:
    iOS 在系统设置中展示Version, Build, Git等信息
    iOS10 App跳转到系统设置
    iOS UIPrintInteractionController打印
    iOS U6b3e转字符串
    Xcode8 报 ”xx“is missing from working copy 的问题解决方法
    OC学习篇之---概述 分类: IOS 2014-11-28 19:06 2349人阅读 评论(1) 收藏
    Android中插件开发篇之----类加载器 分类: Android 2014-11-24 12:15 3275人阅读 评论(4) 收藏
    Mac上安装MySql 分类: JavaWeb 2014-11-10 22:11 446人阅读 评论(0) 收藏
    Andrdoid中对应用程序的行为拦截实现方式之----从Java层进行拦截 分类: Android 2014-11-10 11:23 4311人阅读 评论(12) 收藏
    程序猿的克星 2014-11-07 18:11 4519人阅读 评论(2) 收藏
  • 原文地址:https://www.cnblogs.com/520fyl/p/7122393.html
Copyright © 2011-2022 走看看