标题: 悬赏寻找一关于减少漏洞的帖子
sizlan
骑士
Rank: 24Rank: 24Rank: 24


UID 103043
精华 0
积分 1560
帖子 498
威望 0
现金 1932 银币
金币 0 金币
阅读权限 50
注册 2007-9-30
状态 离线
发表于 2008-1-16 13:59  资料  个人空间  短消息 

网页游戏英雄之门
悬赏寻找一关于减少漏洞的帖子


突然想起来有个帖子可以借鉴,但是找不到了~~是关于减少游戏漏洞的.

顺便讨论一个问题,请教用什么方法解决最好
问题:两个银行帐户间的转帐是一个很好的例子。在数据库级,这样的转帐包括两个步骤:首先,从源帐户中扣除转帐的金额,然后将其加到目标帐户中。如果在第二步中发生了错误,那么第一步就必须被取消,以避免不相符的情况(和愤怒的客户聚众滋事)。

请问都有什么好的方法?
我目前只有三个思路:
一,一句mysql  水平不到,不会写  ==!
应该是这两句的加和:
sql_defense11="UPDATE world SET metal =metal-(2000*'$quantity_post') and metal>'$b' WHERE world.id_star =1 ";
sql_defense12="INSERT INTO construction (id_star, thing, quantity, time_begin) VALUES ('111', '1', '20', NOW())";
第一句的意思是如果金属够 金属自减这个数量
第二句的意思是如果满足条件一,则完成这个插入


二,储存过程
@a = UPDATE world SET metal =metal-(2000*'$quantity_post') WHERE world.id_star =1  and metal>'$b';
        if(@a = ture,INSERT INTO construction (id_star, thing, quantity, time_begin) VALUES ('111', '1', '20', NOW()),'');

三,事物
// connect to database



  $dbh = mysqli_connect($host, $user, $pass, $db);



  // turn off auto-commit



  mysqli_autocommit($dbh, FALSE);



  // run query 1



  $result = mysqli_query($dbh, $query1);



  if ($result !== TRUE) {



  mysqli_rollback($dbh); // if error, roll back transaction



  }



  // run query 2



  $result = mysqli_query($dbh, $query2);



  if ($result !== TRUE) {



  mysqli_rollback($dbh); // if error, roll back transaction



  }



  // and so on...



  // assuming no errors, commit transaction



  mysqli_commit($dbh);



  // close connection



  mysqli_close($dbh);



  ?>





求当时的帖子 和请教更多方法,谢谢

顶部
[广告] CWG维权点子征集
marswj
老兵
Rank: 9Rank: 9



UID 114068
精华 0
积分 136
帖子 27
威望 0
现金 2468 银币
金币 0 金币
阅读权限 30
注册 2007-12-3
状态 离线
发表于 2008-1-16 14:18  资料  个人空间  主页 短消息 

事务。。。。。。

顶部
[广告] web棋牌市 6.16内测开启
 


海盗王

当前时区 GMT+8, 现在时间是 2008-7-20 21:26
沪ICP备06036464号

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.115272 second(s), 8 queries , Gzip enabled

清除 Cookies - 联系我们 - Chinese Webgame BBS 中国网页游戏论坛 - Archiver - WAP