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 相关文章推荐
snoopy PHP版的网络客户端提供本地下载
Apr 15 PHP
php mssql 日期出现中文字符的解决方法
Mar 10 PHP
用Php编写注册后Email激活验证的实例代码
Mar 11 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
Jun 13 PHP
PHP中使用TCPDF生成PDF文档实例
Jul 01 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
Dec 17 PHP
PHP获取POST数据的几种方法汇总
Mar 03 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
Oct 09 PHP
PHP工程师VIM配置分享
Dec 15 PHP
PHP中file_put_contents追加和换行的实现方法
Apr 01 PHP
php中关于换行的实例写法
Sep 26 PHP
如何在PHP环境中使用ProtoBuf数据格式
Jun 19 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
多重?l件?合查?(二)
2006/10/09 PHP
php利用curl抓取新浪微博内容示例
2014/04/27 PHP
php文件缓存方法总结
2016/03/16 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
使用JQUERY Tabs插件宿主IFRAMES
2010/01/01 Javascript
jquery easyui使用心得
2014/07/07 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
JavaScript Split()方法
2015/12/18 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
JavaScript中undefined和null的区别
2017/05/03 Javascript
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
vue绑定class的三种方法
2020/12/24 Vue.js
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
Python实现时钟显示效果思路详解
2018/04/11 Python
python退出命令是什么?详解python退出方法
2018/12/10 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
python安装及变量名介绍详解
2020/12/12 Python
Urban Outfitters美国官网:美国生活方式品牌
2016/08/26 全球购物
Oakley官网:运动太阳镜、雪镜和服装
2016/09/30 全球购物
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
法制宣传月活动方案
2014/05/11 职场文书
大专生自我鉴定怎么写
2014/09/16 职场文书
旗帜观后感
2015/06/08 职场文书
浅谈Web Storage API的使用
2021/06/23 Javascript
详解Flutter和Dart取消Future的三种方法
2022/04/07 Java/Android