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概述.
Oct 09 PHP
PHP垃圾回收机制简单说明
Jul 22 PHP
YII中assets的使用示例
Jul 31 PHP
又一个PHP实现的冒泡排序算法分享
Aug 21 PHP
一个php生成16位随机数的代码(两种方法)
Sep 16 PHP
php实现在多维数组中查找特定value的方法
Jul 29 PHP
PHP信号量基本用法实例详解
Feb 12 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
Feb 04 PHP
PHP 文件锁与进程锁的使用示例
Aug 07 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
Mar 03 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 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禁止个别IP访问网站
2013/10/30 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
php检测url是否存在的方法
2015/04/14 PHP
详解php比较操作符的安全问题
2015/12/03 PHP
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
JS俄罗斯方块,包含完整的设计理念
2010/12/11 Javascript
jquery的index方法实现tab效果
2011/02/16 Javascript
javascript 回到顶部效果的实现代码
2014/02/17 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
jQuery实现图片轮播效果代码
2016/09/27 Javascript
基于js中this和event 的区别(详解)
2017/10/24 Javascript
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
JS中的事件委托实例浅析
2018/03/22 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
Python中摘要算法MD5,SHA1简介及应用实例代码
2018/01/09 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
python Plotly绘图工具的简单使用
2020/03/03 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
python对一个数向上取整的实例方法
2020/06/18 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
Python实现播放和录制声音的功能
2020/08/12 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
2021/03/03 Python
经典c++面试题五
2014/12/17 面试题
晚归检讨书
2014/02/19 职场文书
《小池塘》教学反思
2014/02/28 职场文书
离职证明标准格式
2014/09/15 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
个人委托书范本汇总
2014/10/01 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书