zoukankan      html  css  js  c++  java
  • 记录一次程序输出和DB查询不匹配的问题

    今天发生一件很神奇的事情,我用TP读取DB数据,然后打印出来的数据,和直接通过sequal pro查询出来的数据(某一列),怎么对都对不起来,我尝试

    • 清空TP缓存
    • MYSQL服务重启
    • mac重启

    都无功而返,最后我发现问题出在这里

    $model = new Model();
    $model->startTrans();
    .
    .
    .
    .
    .
    
    // 写明细
    $saveData = $this->getChkSaveItems($refund_items);
    $saveData && $flag = $applyItem->saveAll($saveData);
    
    //这里是重点
    // $model->commit();
    
    $refund_rst = M('b2b_refunds_apply_item')->field($fields)->group("{$voucher_type}")->where($where)->select();
            
    echo '<pre>';
    print_r($refund_rst);
    echo '</pre>';
    exit;

    也就是说,我在打印数据的时候还在事务之内,还没commit或者rollback,而在打印这个结果之前,我刚对该列执行了update操作,所以之后我再读取这一列,实际上读取的是内存的值,并不是DB里的值。只有commit或者rollback之后,我再打印,那就和DB的值一致了。

  • 相关阅读:
    C#垃圾回收(GC)
    yum --enablerepo=elrepo-kernel install kernel-lt -y
    centos 查看版本
    linux 内核升级
    awk
    升级内核
    elerpo
    http://elrepo.org/tiki/tiki-index.php
    NO_TITLE
    MongoDB Find查询 1
  • 原文地址:https://www.cnblogs.com/linux-centos/p/10613045.html
Copyright © 2011-2022 走看看