我们一定会碰到这样的情况:银行A与银行B几乎同时打开你的账户并看到你的账户上原有元存款,然后两家银行都想在你的账户上加上元存款。那么,银行A便将元改成元,同时,银行B也将元改成了元。这样就糟糕了!最后,你的银行账户上最后只有元而不是理应的元,等于白白损失了元!这就是在没有锁定数据的情况下修改造成的严重问题。然而,我们可以通过时间戳来巧妙解决这个问题。 我们来看思路: 在银行account表中建立时间戳字段timestamp,设定为文本类型varchar。 当银行A读取account表中的存款字段时,同时也读取时间戳字段,比如。 当银行A修改完存款数值后,进行存盘操作时,将先前读取的时间戳与当时表中的时间戳进行一次对比,如果一致,那么允许存盘,然后生成一个新的时间戳比如替换表中原有的时间戳。 这样做会带来什么好处呢。 我们再来看一开始的那个情况:银行A与银行B几乎同时打开你的账户并看到你的账户上原有元存款,与此同时两个银行业同时读取了时间戳,接下来就有区别了,当银行A把元改成元后,存盘,系统将对比先前的时间戳是否与存盘时表中的时间戳一致,显然,现在应该是一致的,那么允许存盘,并生成新的时间戳替换了旧的时间戳。接下去,B银行也将元修改成了元,存盘,系统对比先前的时间戳是否与存盘时表中的时间戳一致,发现先前的时间戳已经与现在的时间戳相异,系统拒绝存盘,要求刷新数据,那么数据刷新之后元已经因为之前A银行存入了元而成为了元,那么B银行就会在元的基础上改为元,再次存盘,系统允许。这样,我们就避免了重复修改数据所带来的错误! 有些像绕口令,希望大家已经明白我的意思~ 最后,让我们看看PHP中对时间戳的一些操作代码。 获得时间戳 <?php $timestamp=time(); echo $timestamp; ?> 更新timestamp的SQL的语句: update 表名 set 字段名=$timestamp where 条件=值; 作者:Sunec 原载:Cenus Blog 版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
推荐整理分享PHP时间戳使用实例代码(php时间戳相减),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:php 时间,php 当前时间戳,php 时间戳毫秒,php时间戳相减,php时间戳相减,php时间戳相减,php 当前时间戳,php 时间戳是几位数,内容如对您有帮助,希望把文章链接给更多的朋友!
PHP中MD5函数使用实例代码 一般来说,一个提供会员注册的网站必定需要采集用户的密码,如何保存用户密码就是个问题。我们当然不能将密码以明文的方式储存在数据库中,因
php mysql索引问题 显然这是一个凡是使用MySQL的朋友都会遇到的问题。回忆一下当初在配置环境时提到的MySQLGUI工具,对了,就是它,大家可以到
介绍php设计模式中的工厂模式 问题你如何能轻松方便地建立这么"复杂"的对象即操作中不需要粘贴复制呢?解决方法建立一个工厂(一个函数或一个类方法)来制造新的对象。为了理