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 相关文章推荐
用PHP4访问Oracle815
Oct 09 PHP
PHP4实际应用经验篇(3)
Oct 09 PHP
php session 检测和注销
Mar 16 PHP
PHP中require和include路径问题详解
Dec 25 PHP
php搜索文件程序分享
Oct 30 PHP
WordPress的主题编写中获取头部模板和底部模板
Dec 28 PHP
php注册登录系统简化版
Dec 28 PHP
PHP 二维数组和三维数组的过滤
Mar 16 PHP
php实现水印文字和缩略图的方法示例
Dec 29 PHP
PHP使用ajax的post方式下载excel文件简单示例
Aug 06 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
Oct 03 PHP
基于thinkphp6.0的success、error实现方法
Nov 05 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
DOTA2 无惧惊涛骇浪 昆卡大型水友攻略
2020/04/20 DOTA
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
学习ExtJS accordion布局
2009/10/08 Javascript
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
2010/09/12 Javascript
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
2011/01/06 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
jquery+正则实现统一的表单验证
2015/09/20 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
Python使用剪切板的方法
2017/06/06 Python
Django unittest 设置跳过某些case的方法
2018/12/26 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
python实现整数的二进制循环移位
2019/03/08 Python
Python Numpy计算各类距离的方法
2019/07/05 Python
django 连接数据库出现1045错误的解决方式
2020/05/14 Python
使用已经得到的keras模型识别自己手写的数字方式
2020/06/29 Python
阿迪达斯新加坡官方网站:adidas新加坡
2019/12/06 全球购物
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
25道Java面试题集合
2013/05/21 面试题
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
经理助理岗位职责
2014/03/05 职场文书
中学生综合素质自我评价
2015/03/06 职场文书
MySQL之DML语言
2021/04/05 MySQL
Django程序的优化技巧
2021/04/29 Python
Nginx 匹配方式
2022/05/15 Servers
Python 读取千万级数据自动写入 MySQL 数据库
2022/06/28 Python