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 相关文章推荐
优化NFR之一 --MSSQL Hello Buffer Overflow
Oct 09 PHP
php各种编码集详解和以及在什么情况下进行使用
Sep 11 PHP
第二章 PHP入门基础之php代码写法
Dec 30 PHP
PHP获取http请求的头信息实现步骤
Dec 16 PHP
wamp下修改mysql访问密码的解决方法
May 07 PHP
php中替换字符串中的空格为逗号','的方法
Jun 09 PHP
PHP实现更新中间关联表数据的两种方法
Sep 01 PHP
php+ajax实现的点击浏览量加1
Apr 16 PHP
PHP实现XML与数据格式进行转换类实例
Jul 29 PHP
Yii框架表单提交验证功能分析
Jan 07 PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 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为什么选mysql作为数据库? Mysql 创建用户方法
2007/07/02 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
2013/06/09 PHP
php中{}大括号是什么意思
2013/12/01 PHP
php中的登陆login实例代码
2016/06/20 PHP
php实现微信企业付款到个人零钱功能
2018/10/09 PHP
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
面向对象继承实例(a如何继承b问题)(自写)
2013/07/01 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战二)
2013/08/21 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
浅析Javascript匿名函数与自执行函数
2016/02/06 Javascript
完善的jquery处理机制
2016/02/21 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
ios中视频的最后一桢问题解决
2019/05/14 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
JavaScript枚举选择jquery插件代码实例
2020/11/17 jQuery
vue中watch的用法汇总
2020/12/28 Vue.js
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
Python编程入门的一些基本知识
2015/05/13 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
Windows和Linux下Python输出彩色文字的方法教程
2017/05/02 Python
python 调用钉钉机器人的方法
2019/02/20 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
2020/01/10 Python
美国在线旅行社:Crystal Travel
2018/09/11 全球购物
入党申请人的自我鉴定
2013/12/01 职场文书
公司年会晚宴演讲稿
2014/01/06 职场文书
高中生物教学反思
2014/02/05 职场文书
无传销社区工作方案
2014/05/13 职场文书
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js