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+dbfile开发小型留言本
Oct 09 PHP
php下把数组保存为文件格式的实例应用
Feb 08 PHP
PHP学习之数组值的操作
Apr 17 PHP
php设计模式 Facade(外观模式)
Jun 26 PHP
php读取富文本的时p标签会出现红线是怎么回事
May 13 PHP
php快速查找数据库中恶意代码的方法
Apr 01 PHP
Codeigniter的dom类用法实例
Jun 26 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 PHP
PHP下载大文件失败并限制下载速度的实例代码
May 10 PHP
Laravel框架学习笔记之批量更新数据功能
May 30 PHP
Laravel 自定命令以及生成文件的例子
Oct 23 PHP
PHP实现计算器小功能
Aug 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
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
CI框架整合widget(页面格局)的方法
2016/05/17 PHP
Prototype使用指南之range.js
2007/01/10 Javascript
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
基于JQuery的6个Tab选项卡插件
2010/09/03 Javascript
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
玩转方法:call和apply
2014/05/08 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
2014/09/02 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
针对初学者的jQuery入门指南
2015/08/15 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
jquery实现全屏滚动
2015/12/28 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
mui框架移动开发初体验详解
2017/10/11 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
轻松解决JavaScript定时器越走越快的问题
2019/05/13 Javascript
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
keras 权重保存和权重载入方式
2020/05/21 Python
Python实现AES加密,解密的两种方法
2020/10/03 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
2020/11/27 Python
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
旅游业大学生创业计划书
2014/01/31 职场文书
大学生暑期实践感言
2014/02/26 职场文书
2014年语文教学工作总结
2014/12/17 职场文书
人事聘任通知
2015/04/21 职场文书
童年读书笔记
2015/06/26 职场文书
JS轻量级函数式编程实现XDM二
2022/06/16 Javascript