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 数组入门教程小结
May 20 PHP
PHP header函数分析详解
Aug 06 PHP
php判断终端是手机还是电脑访问网站的思路及代码
Apr 24 PHP
php中引用符号(&amp;)的使用详解
Nov 13 PHP
PHP二维数组排序的3种方法和自定义函数分享
Apr 09 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
PHP设计模式之简单投诉页面实例
Feb 24 PHP
php array_key_exists() 与 isset() 的区别
Oct 24 PHP
php根据地址获取百度地图经纬度的实例方法
Sep 03 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 PHP
php引用传递
Apr 01 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正则校验用户名介绍
2008/07/19 PHP
php防盗链的常用方法小结
2010/07/02 PHP
php获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
php中return的用法实例分析
2015/02/28 PHP
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
Javascript Object 对象学习笔记
2014/12/17 Javascript
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
2015/01/01 NodeJs
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
2016/09/05 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
2017/02/16 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
Angular 4.X开发实践中的踩坑小结
2017/07/04 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
2018/06/22 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
Python迭代器和生成器介绍
2015/03/06 Python
Python 实现字符串中指定位置插入一个字符
2018/05/02 Python
一文带你了解Python中的字符串是什么
2018/11/20 Python
详解python做UI界面的方法
2019/02/27 Python
Python 中Django验证码功能的实现代码
2019/06/20 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
Python 没有main函数的原因
2020/07/10 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
校园餐饮创业计划书
2014/01/10 职场文书
秋季运动会演讲稿
2014/09/16 职场文书
没有孩子的离婚协议书怎么写
2014/09/17 职场文书
2014财务部年度工作总结
2014/12/08 职场文书
MySQL 重命名表的操作方法及注意事项
2021/05/21 MySQL
基于Python实现将列表数据生成折线图
2022/03/23 Python