1、mysql在进行数据的修改时,并发情况下:

$RoundsRows=$modelRounds->where("id=$roundsID and (sendMoney + $amount <=

TotalMoney)")->setInc('SendMoney',$amount);

2、在mysql事务中,会有幻读,在事务中可以并发读,某一资源,

$modelOrder->startTrans(); //开启事务操作

$NOW=date("Y-m-d H:i:s");
$maxPayConfirmID=$modelOrder->max("PayConfirmID");
$maxPayConfirmID++;

$saveArr_order=array(
"OrderStatus" =>1,
"PayStatus" =>2,
"PayTime" =>$NOW,
"ConfirmTime" =>$NOW,
"PayConfirmID"=>$maxPayConfirmID
);

$saveRows=$modelOrder->where("OrderSn='$out_trade_no' AND OrderStatus=0

AND PayStatus=1")->save($saveArr_order);

修改为下面就好了,在事务中,不可以并发写,

$modelOrder->startTrans(); //开启事务操作

$NOW=date("Y-m-d H:i:s");

//2.订单操作记录
$addArr_oaction=array(
"OrderSn" =>$out_trade_no,
"ActionUser" =>0,
"OrderStatus" =>1,
"CreateTime" =>$NOW
);

$add_OactionID=$modelOaction->add($addArr_oaction);

if(empty($add_OactionID))
{
$modelOrder->rollback();
$this->recordLogs("wxpay_oaction_fail","更改订单操作失败","更改订单

操作失败");
$this->stopCallback();
}

//1.更改订单,已确认,已付款

$maxPayConfirmID=$add_OactionID;//$modelOrder->max("PayConfirmID");

$saveArr_order=array(
"OrderStatus" =>1,
"PayStatus" =>2,
"PayTime" =>$NOW,
"ConfirmTime" =>$NOW,
"PayConfirmID"=>$maxPayConfirmID
);

$saveRows=$modelOrder->where("OrderSn='$out_trade_no' AND OrderStatus=0

AND PayStatus=1")->save($saveArr_order);

3、double转成int会有定都丢失

转换为string再转换为int

这个是PHP document中给出来的提示:

简单的十进制分数如同 0.1 或 0.7 不能在不丢失一点点精度的情况下转换为内部二进制的格

式。
floor(( 0.1 + 0.7 ) * 10) 返回 7 而不是8,
(int)(( 0.1 + 0.7 ) * 10) 返回7而不是8.

对这种现象的解释是“因为该结果内部的表示其实是类似 7.9”。

所以得到的结论是:
所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。
决不要将未知的分数强制转换为Int。

(int)round( 0.1 + 0.7 ) * 10) 这样似乎就安全了。
在有大量乘除或者是中间值为float类型时,为了数值精度还是使用BC math函数了。

php工作笔记8-并发和数据类型的更多相关文章

  1. Mysql学习笔记(一)数据类型

    原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型     Mysql数据类型             含义(有符号)     tinyint(m ...

  2. <<操作系统精髓与设计原理>>读书笔记(一) 并发性:互斥与同步(1)

    <<操作系统精髓与设计原理>>读书笔记(一) 并发性:互斥与同步 并发问题是所有问题的基础,也是操作系统设计的基础.并发包括很多设计问题,其中有进程间通信,资源共享与竞争,多个 ...

  3. [笔记][Java7并发编程实战手冊]系列文件夹

    推荐学习多线程之前要看的书. [笔记][思维导图]读深入理解JAVA内存模型整理的思维导图文章里面的思维导图或则相应的书籍.去看一遍. 能理解为什么并发编程就会出现故障. Java7并发编程实战手冊 ...

  4. 2016年第2周读书笔记与工作笔记 scrollIntoView()与datalist元素

    这一周主要是看了html5网页开发实例与javascript 高级程序设计,供以后翻阅查找.  html5网页开发实例第1章与第二章的2.1部分: 第1章内容: html5在w3c的发展史. 浏览器的 ...

  5. MYSQL基础笔记(六)- 数据类型一

    数据类型(列类型) 所谓数据烈性,就是对数据进行统一的分类.从系统角度出发时为了能够使用统一的方式进行管理,更好的利用有限的空间. SQL中讲数据类型分成三大类:1.数值类型,2.字符串类型和时间日期 ...

  6. javascript - 工作笔记 (事件四)

    在javascript - 工作笔记 (事件绑定二)篇中,我将事件的方法做了简单的包装,  JavaScript Code  12345   yx.bind(item, "click&quo ...

  7. Mysql学习笔记(二)数据类型 补充

    原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...

  8. 工作笔记3.手把手教你搭建SSH(struts2+hibernate+spring)环境

    上文中我们介绍<工作笔记2.软件开发经常使用工具> 从今天開始本文将教大家怎样进行开发?本文以搭建SSH(struts2+hibernate+spring)框架为例,共分为3步: 1)3个 ...

  9. Java并发编程的艺术读书笔记(2)-并发编程模型

    title: Java并发编程的艺术读书笔记(2)-并发编程模型 date: 2017-05-05 23:37:20 tags: ['多线程','并发'] categories: 读书笔记 --- 1 ...

随机推荐

  1. Java中事务的概念

    | 版权声明:本文为博主原创文章,未经博主允许不得转载. 前言: 在学习事务确实有不少弯路,那么今天笔者就用例子讲解一下事务,让初学者少走一些弯路. [回顾事务]问:什么是事务? 答:用专业术语来说事 ...

  2. CPU利用率异常的分析思路和方法交流探讨

    CPU利用率异常的分析思路和方法交流探讨在生产运行当中,经常会遇到CPU利用率异常或者不符合预期的情况,此时,往往暗示着系统性能问题.那么究竟是核心应用的问题?是监控工具的问题?还是系统.硬件.网络层 ...

  3. Kylin(三): Saiku

    Saiku是一个轻量级的OLAP分析引擎,可以方便的扩展.嵌入和配置.Saiku通过REST API连接OLAP系统,利用其友好的界面为用户提供直观的分析数据的方式,它是基于jQuery做的前端界面. ...

  4. [转]windows下编译及使用libevent

    http://www.cnblogs.com/luxiaoxun/p/3603399.html Libevent官网:http://libevent.org/ windows 7下编译: 编译环境:  ...

  5. My Open Source Projects

    • MyMagicBox (https://github.com/yaoyansi/mymagicbox)   Role: Creator   Miscellaneous projects for e ...

  6. storm基础系列之一----storm并发度概念剖析

    前言: 学了几天storm的基础,发现如果有hadoop基础,再理解起概念来,容易的多.不过,涉及到一些独有的东西,如调度,如并发度,还是很麻烦.那么,从这一篇开始,力争清晰的梳理这些知识. 在正式学 ...

  7. (OpenCV) VS2013 + opencv-2.4.10.exe + Windows 10 开发环境配置

    主要配置2点: - Windows 环境变量. - VC++ 配置. STEP BY STEP: 1. 双击 ”opencv-2.4.10.exe“,解压到本地文件夹 “C:\ ". 2. ...

  8. CentOS 7如何连接无线网络

    虽然查阅了相关网络资料,但是以下内容均为原创内容,只有干货,无废话. 1.切换到超级用户 [Oscar@localhost 桌面]$ su root 2.查询可用的无线网卡,其中红色为网卡号 [Osc ...

  9. SDWebImage总结

    SDWebImage 支持异步的图片下载+缓存,提供了 UIImageView+WebCache的 category,方便使用. 优点:首先NSURLCache是缓存原始数据(raw data)到磁盘 ...

  10. 开发安卓应用之中兴手机与macbook pro 连接设定

    目标: 把中兴手机和macbook pro 连接在一起,实现真机调试安卓应用. 工具: 手机型号:zte v956 mac os: OS X 10 Eclipse: Android Developer ...