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
复杂检索数据并分页显示的处理方法
Oct 09 PHP
PHP date函数参数详解
Nov 27 PHP
实现 win2003 下 mysql 数据库每天自动备份
Dec 06 PHP
Zend framework处理一个http请求的流程分析
Feb 08 PHP
php添加文章时生成静态HTML文章的实现代码
Feb 17 PHP
PHP语法自动检查的Vim插件
Aug 11 PHP
php生成随机颜色方法汇总
Dec 03 PHP
PHP中调用SVN命令更新网站方法
Jan 07 PHP
PHP使用内置dir类实现目录遍历删除
Mar 31 PHP
PHP HTTP 认证实例详解
Nov 03 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 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/04/09 PHP
关于PHPDocument 代码注释规范的总结
2013/06/25 PHP
如何取得中文输入的真实长度?
2006/06/24 Javascript
Javascript base64编码实现代码
2011/12/02 Javascript
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
2016/12/22 Javascript
Javascript操作dom对象之select全面解析
2017/04/24 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
详解js中的几种常用设计模式
2020/07/16 Javascript
el-form 多层级表单的实现示例
2020/09/10 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
[52:31]VP vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python程序设计入门(4)模块和包
2014/06/16 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
解决python使用open打开文件中文乱码的问题
2017/12/29 Python
Python入门学习指南分享
2018/04/11 Python
python使用tcp实现局域网内文件传输
2020/03/20 Python
python分数表示方式和写法
2019/06/26 Python
python调用其他文件函数或类的示例
2019/07/16 Python
Python如何安装第三方模块
2020/05/28 Python
SOKOLOV官网:俄罗斯珠宝首饰品牌
2021/01/02 全球购物
小学运动会表扬稿
2014/01/19 职场文书
2014年民政工作总结
2014/11/26 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书
实习报告怎么写
2019/06/20 职场文书
何时使用Map来代替普通的JS对象
2021/04/29 Javascript
golang的文件创建及读写操作
2022/04/14 Golang