zoukankan      html  css  js  c++  java
  • 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 '数据集为空';
    }

  • 相关阅读:
    错误与异常_2-11选择题
    错误与异常_2-10选择题
    错误与异常_2-8选择题
    错误与异常_2-7选择题
    C#定时器
    C#动态webservice调用接口
    C# webservice返回Xml格式文件
    C#创建简单的Xml文件
    获取数据库中指定类型的数据库名称
    C#生成Xml以UTF-8无BOM格式编码
  • 原文地址:https://www.cnblogs.com/520fyl/p/7126426.html
Copyright © 2011-2022 走看看