PHP时间戳使用实例代码


Posted in PHP onJune 07, 2008

     我们一定会碰到这样的情况:银行A与银行B几乎同时打开你的账户并看到你的账户上原有1000元存款,然后两家银行都想在你的账户上加上500元存款。那么,银行A便将1000元改成1500元,同时,银行B也将1000元改成了1500元。这样就糟糕了!最后,你的银行账户上最后只有1500元而不是理应的2000元,等于白白损失了500元!这就是在没有锁定数据的情况下修改造成的严重问题。然而,我们可以通过时间戳来巧妙解决这个问题。

    我们来看思路:

在银行account表中建立时间戳字段timestamp,设定为文本类型varchar。 
当银行A读取account表中的存款字段时,同时也读取时间戳字段,比如123456。 
当银行A修改完存款数值后,进行存盘操作时,将先前读取的时间戳123456与当时表中的时间戳进行一次对比,如果一致,那么允许存盘,然后生成一个新的时间戳比如456789替换表中原有的时间戳123456。
    这样做会带来什么好处呢。

    我们再来看一开始的那个情况:银行A与银行B几乎同时打开你的账户并看到你的账户上原有1000元存款,与此同时两个银行业同时读取了时间戳123456,接下来就有区别了,当银行A把1000元改成1500元后,存盘,系统将对比先前的时间戳123456是否与存盘时表中的时间戳一致,显然,现在应该是一致的,那么允许存盘,并生成新的时间戳456789替换了旧的时间戳123456。接下去,B银行也将1000元修改成了1500元,存盘,系统对比先前的时间戳123456是否与存盘时表中的时间戳一致,发现先前的时间戳123456已经与现在的时间戳456789相异,系统拒绝存盘,要求刷新数据,那么数据刷新之后1000元已经因为之前A银行存入了500元而成为了1500元,那么B银行就会在1500元的基础上改为2000元,再次存盘,系统允许。这样,我们就避免了重复修改数据所带来的错误!

    有些像绕口令,希望大家已经明白我的意思~

    最后,让我们看看PHP中对时间戳的一些操作代码。

获得时间戳
<?php
$timestamp=time();
echo $timestamp;
?> 
更新timestamp的SQL的语句:
update 表名 set 字段名=$timestamp where 条件=值;
作者:Sunec
原载:Cenus Blog
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。

PHP 相关文章推荐
如何把PHP转成EXE文件
Oct 09 PHP
Dedecms V3.1 生成HTML速度的优化办法
Mar 18 PHP
有关 PHP 和 MySQL 时区的一点总结
Mar 26 PHP
初学CAKEPHP 基础教程
Nov 02 PHP
php获取当前页面完整URL地址
Dec 30 PHP
PHP正则表达式过滤html标签属性(DEMO)
May 04 PHP
CI框架中类的自动加载问题分析
Nov 21 PHP
Laravel中的Auth模块详解
Aug 17 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
Aug 20 PHP
php引用和拷贝的区别知识点总结
Sep 23 PHP
Yii框架安装简明教程
May 15 PHP
PHP-MySQL教程归纳总结
Jun 07 #PHP
PHP实现MySQL更新记录的代码
Jun 07 #PHP
用PHP连接MySQL代码的参数说明
Jun 07 #PHP
PHP简单系统数据添加以及数据删除模块源文件下载
Jun 07 #PHP
用PHP进行MySQL删除记录操作代码
Jun 07 #PHP
PHP insert语法详解
Jun 07 #PHP
PHP添加MySQL数据记录代码
Jun 07 #PHP
You might like
PHP截取中文字符串的问题
2006/07/12 PHP
NT IIS下用ODBC连接数据库
2006/10/09 PHP
支持中文字母数字、自定义字体php验证码代码
2012/02/27 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
类似框架的js代码
2006/11/09 Javascript
一个基于jQuery的树型插件(OrangeTree)使用介绍
2012/05/03 Javascript
jquery 面包屑导航 具体实现
2013/06/05 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
JS随机数产生代码分享
2018/02/24 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
ionic4+angular7+cordova上传图片功能的实例代码
2019/06/19 Javascript
详解微信小程序之提高应用速度小技巧
2020/01/07 Javascript
Python利用QQ邮箱发送邮件的实现方法(分享)
2017/06/09 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
2018/01/30 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
Python 导入文件过程图解
2019/10/15 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
Python如何获取文件路径/目录
2020/09/22 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
2020/12/14 Python
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
Merrell美国官网:美国登山运动鞋品牌
2018/02/07 全球购物
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
英国领先的电视购物零售商:Ideal World
2019/03/18 全球购物
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
公司户外活动总结
2014/07/04 职场文书
国庆阅兵观后感
2015/06/15 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
商业计划书之服装
2019/09/09 职场文书
Redis+AOP+自定义注解实现限流
2022/06/28 Redis