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+SQLite存储方案
Sep 04 PHP
PHP学习散记_编码(json_encode 中文不显示)
Nov 10 PHP
php中将数组存到文件里的实现代码
Jan 19 PHP
php定义数组和使用示例(php数组的定义方法)
Mar 29 PHP
使用CodeIgniter的类库做图片上传
Jun 12 PHP
php操作memcache缓存方法分享
Jun 03 PHP
CI框架使用composer安装的依赖包步骤与方法分析
Nov 21 PHP
thinkPHP中session()方法用法详解
Dec 08 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
PHP迭代器和迭代的实现与使用方法分析
Apr 19 PHP
ThinkPHP防止重复提交表单的方法实例分析
May 10 PHP
PHP命名空间简单用法示例
Dec 28 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
自己前几天写的无限分类类
2007/02/14 PHP
隐藏你的.php文件的实现方法
2007/03/19 PHP
php学习之运算符相关概念
2011/06/09 PHP
php函数的常用方法及注意之处小结
2011/07/10 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
2011/11/02 PHP
php常用字符串查找函数strstr()与strpos()实例分析
2019/06/21 PHP
jQuery 常见学习网站与参考书
2009/11/09 Javascript
关于js new Date() 出现NaN 的分析
2012/10/23 Javascript
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
flash遮住div问题的正确解决方法
2014/02/27 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
2014/09/03 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
easyui Droppable组件实现放置特效
2015/08/19 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
[01:19:11]Ti4 循环赛第二日 NaVi.us vs iG
2014/07/11 DOTA
python 打印对象的所有属性值的方法
2016/09/11 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
2019/06/11 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
对Pytorch神经网络初始化kaiming分布详解
2019/08/18 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
详解Python遍历列表时删除元素的正确做法
2021/01/07 Python
研究生自我鉴定范文
2013/10/30 职场文书
生产管理的三大手法
2013/11/11 职场文书
教学个人的自我评价分享
2014/02/16 职场文书
小学新学期寄语
2014/04/02 职场文书
优秀的应届生自荐信
2014/05/23 职场文书
工厂见习报告范文
2014/10/31 职场文书
女儿满月酒致辞
2015/07/29 职场文书
创业计划书之酒厂
2019/10/14 职场文书
解决Vue+SpringBoot+Shiro跨域问题
2021/06/09 Vue.js
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS