• ThinkPHP6


    数据库连接

    .env文件以键值对方式保存本地数据连接配置,configdatabase.php会优先读取.env中的值,否则启用env方法中的默认值,因此在部署(前)时应保证database.php中有关数据库配置部分的默认值有效,以便保证在生产环境中无论是否存在.env文件都能正常工作。database.php中的connections可以配置多个连接源,并通过default键指定默认使用的连接,或者在代码中通过connect方法指定所用的连接名

    Db::connect('mysql_backup_2')->table('tbName')->select();
    

    有条件操作数据库

    • Db::table()将查询到所有数据,但需要给定完整的数据表名,包括前缀
    • find()可以查询一条数据,但需要给定where(colName, value)条件
    • findOrFail()没有数据时抛出一个异常,findOrEmpty()没有数据时返回空数组
    • select()返回数据集, select()->toArray()转换为数组
    • Db::name(tableName)方法可帮助忽略配置文件中设置的表名前缀
    • chunk()批量返回,cursor()获取游标,一行行处理,减小一次性内存压力

    新增数据

    • insert()接受一个数组参数用于新增
    • insertAll()接受一个数组类型的数组参数用于新增
    • save()方法可以通过内置逻辑智能判断要新增还是更新数据,判断依据是是否含有主键列,不包含主键是新增,反之更新
    • field()帮助在新增时验证字段合法性 Db::name()->field('colName1, colName2')->insert($data);

    更新数据

    • update()用于更新
    • save()方法参数中包含主键即可更新
    • exp()用于执行SQL函数,如where()->exp('name', 'UPPER(name)')->update()
    • inc/dec()自增自减指定列
    • Db::raw()方法更加灵活实现exp()inc/dec(),如where()->update([ 'name'=>Db::raw('UPPER(name), 'price'=>Db::raw('price+1'), 'status'=>Db::raw('status-2'))) ])

    删除数据

    • delete()方法接受整数或整数组成的数组作为参数,可根据主键直接删除数据并返回受影响行数,否则返回0
    • where()->delete()使用where约束条件来删除
    • delete(true)删除所有数据,勿动!!!

    分页

    • limit($num)limit($indexPos,$num)方法用于有限地检索数据
    • page($pageNum, $num)方法优化了limit(),无需计算分页条数

    高级查询

    • where()传递一个数组类型的数组可以完成多条件的WHERE的组合,把这个数组放在where()中并加入一个中括号可使其独立的包含在带 () 的SQL语句中
    $exp = [
    ['id', '>', '0'],
    ['price', 'exp', Db::raw('>=80')],
    ['email', 'like', '%163%']
    ];
    
    $user = Db::name('user')->where([$exp])->where('status', 1)->select();
    return Db::getLastSql();
    
    • WhereOr([$exp1, $exp2])适用于含相同字段且逻辑是的查询
    • Where()支持闭包,闭包语法一定程度上更直观
    $user = Db::name('user')->where(function ($query){
       $query->where('id', '>', 0);
    })->whereOr(function ($query){
       $query->where('username', 'like', '%小%');
    })->select();
    
    • WhereRaw()支持自定义的符合SQL语法的条件字符串,即SQL中关键字WHERE后边的部分
    • WhereRaw(带有标识符的Where条件语句字符串, 与标识符对应的键值对组成的数组)支持参数绑定,数据源支持的话支持预处理
    ## 不重要的其实最重要
  • 相关阅读:
    解决silverlight中“跨线程访问无效”错误
    VS 制作自定义安装程序
    SQL Server 2005开窗函数的使用
    主要邮件服务器地址
    sql数据库的备份还原操作出现的常见问题
    先安装ArcGIS9.3 后VS2008 出现的问题
    无法启动调试 未安装silverlight developer 运行时 解决办法
    SQL中ROW_NUMBER()的使用
    运用PMI主义
    Understanding the error message: “Login failed for user ''. The user is not associated with a trusted SQL Server connect
  • 原文地址:https://www.cnblogs.com/cinlap/p/14890109.html
Copyright © 2020-2023  润新知