• ThinkPHP5.0 数据库操作说明


    使用事务处理的话,需要数据库引擎支持事务处理。比如 MySQL 的 MyISAM 不支持事务处理,需要使用 InnoDB 引擎。

    使用 transaction 方法操作数据库事务,当发生异常会自动回滚,例如:

    一、自动控制事务处理

    Db::transaction(function(){
        Db::table('think_user')->find(1);
        Db::table('think_user')->delete(1);
    });

    二、手动控制事务处理

    // 启动事务
    Db::startTrans();
    try{
        Db::table('think_user')->find(1);
        Db::table('think_user')->delete(1);
        // 提交事务
        Db::commit();    
    } catch (Exception $e) {
        // 回滚事务
        Db::rollback();
    }

    三、如果开启数据库的调试模式的话,你可以对数据库执行的任何SQL操作进行监听,使用如下方法:

    Db::listen(function($sql, $time, $explain){
        // 记录SQL
        echo $sql. ' ['.$time.'s]';
        // 查看性能分析结果
        dump($explain);
    });

    四、可以直接使用数组的方式操作数据集对象,例如:

    // 获取数据集
    $users = Db::name('user')->select();
    // 直接操作第一个元素
    $item  = $users[0];
    // 获取数据集记录数
    $count = count($users);
    // 遍历数据集
    foreach($users as $user){
        echo $user['name'];
        echo $user['id'];
    }

    1、如果要判断数据集是否为空,不能直接使用empty判断,而必须使用数据集对象的isEmpty方法判断,例如: 

    $users = Db::name('user')->select();
    if($users->isEmpty()){
        echo '数据集为空';
    }

  • 相关阅读:
    XML操作
    C# 相等(==,Equals)
    VS插件 选项卡竖排列
    springcloud版本号
    @EnableDiscoveryClient和@EnableEurekaClient的区别
    在mvn构建时直接将项目jar包做成服务第三方工具
    java引用的强制转型
    java基础类型的byte为长度
    springboot访问服务器本地静态文件的方法
    nginx反向代理和负载均衡的基本配置
  • 原文地址:https://www.cnblogs.com/520fyl/p/7126426.html
Copyright © 2020-2023  润新知