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 相关文章推荐
杏林同学录(八)
Oct 09 PHP
PHP伪静态写法附代码
Jun 20 PHP
php面向对象的方法重载两种版本比较
Sep 08 PHP
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
Jan 30 PHP
PHP使用PHPMailer发送邮件的简单使用方法
Nov 12 PHP
php读取csv数据保存到数组的方法
Jan 03 PHP
php制作的简单验证码识别代码
Jan 26 PHP
Yii2框架实现数据库常用操作总结
Feb 08 PHP
php查询及多条件查询
Feb 26 PHP
thinkPHP5.0框架自动加载机制分析
Mar 18 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
Centos7 Yum安装PHP7.2流程教程详解
Jul 02 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 字符串 小常识
2009/06/05 PHP
php5.5新数组函数array_column使用
2013/07/08 PHP
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
PHP开发注意事项总结
2015/02/04 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
基于PHP如何把汉字转化为拼音
2015/12/11 PHP
PDO::getAttribute讲解
2019/01/28 PHP
js+css实现增加表单可用性之提示文字
2013/06/03 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
jqgrid 编辑添加功能详细解析
2013/11/08 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
浅析创建javascript对象的方法
2016/05/13 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
React 使用recharts实现散点地图的示例代码
2018/12/07 Javascript
Python中的rfind()方法使用详解
2015/05/19 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
Python制作词云的方法
2018/01/03 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
2018/03/15 Python
Python面向对象类继承和组合实例分析
2018/05/28 Python
用python解压分析jar包实例
2020/01/16 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
be2台湾单身男女交友:全球网路婚姻介绍的领导品牌
2019/10/11 全球购物
国际金融专业大学生职业生涯规划书
2013/12/28 职场文书
大学军训通讯稿
2014/01/13 职场文书
就业意向书范文
2014/04/01 职场文书
大学新学期计划书
2014/04/28 职场文书
教室标语大全
2014/06/21 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
个人自查自纠材料
2014/10/14 职场文书