PHP商城数据库安全事务处理方法

现在是一个电商时代,做电商的首先得有一个商城,所以商城的安全也是不容忽视的,一个数据安全的商城离不开数据库的事务处理,商城在资金、商品、下单、结账等重要步骤加上事务控制这是不一定不可少的,像市场上的一些开源商城我都有去研究,基本像DSMall开源商城之类的这方面都做的很好。
程序员独立开发商城也要注意这方面的事情,现在我这边就介绍下PHP操作MySQL事务的方法,分享给大家供大家参考。具体方法如下:
一般来说,事务都应该具备ACID特征。所谓ACID是Atomic(原子性),Consistent(一致性),Isolated(隔离性),Durable(持续性)四个词的首字母所写,下面以“银行转帐”为例来分别说明一下它们的含义:
① 原子性:组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分。换句话说,事务是不可分割的最小单元。比如:银行转帐过程中,必须同时从一个帐户减去转帐金额,并加到另一个帐户中,只改变一个帐户是不合理的。
② 一致性:在事务处理执行前后,数据库是一致的。也就是说,事务应该正确的转换系统状态。比如:银行转帐过程中,要么转帐金额从一个帐户转入另一个帐户,要么两个帐户都不变,没有其他的情况。
③ 隔离性:一个事务处理对另一个事务处理没有影响。就是说任何事务都不可能看到一个处在不完整状态下的事务。比如说,银行转帐过程中,在转帐事务没有提交之前,另一个转帐事务只能处于等待状态。
④ 持续性:事务处理的效果能够被永久保存下来。反过来说,事务应当能够承受所有的失败,包括服务器、进程、通信以及媒体失败等等。比如:银行转帐过程中,转帐后帐户的状态要能被保存下来。
在PHP中,mysqli 已经很好的封装了mysql事务的相关操作。如下示例:
$sql1 = “update User set ScoreCount = ScoreCount +10 where ID= ‘123456’”;
$sql2 = “update ScoreDetail set FScore = 300 where ID= ‘123456’”;
$sql3 = “insert into ScoreDetail ID,Score) values (‘123456’,60)”;
$mysqli = new mysqli(‘localhost’,‘root’,’’,‘DB_Lib2Test’);
$mysqli->autocommit(false);//开始事物
m y s q l i − > q u e r y ( mysqli->query( mysqli>query(sql1);
m y s q l i − > q u e r y ( mysqli->query( mysqli>query(sql2);
if(!$mysqli->errno){
$mysqli->commit();
echo ‘ok’;
}else{
echo ‘err’;
$mysqli->rollback();
}
在这里,我们再使用 php mysql 系列函数执行事务。
$sql1 = “update User set ScoreCount = ScoreCount +10 where ID= ‘123456’”;
$sql2 = “update ScoreDetail set FScore = 300 where ID= ‘123456’”;
$sql3 = “insert into ScoreDetail ID,Score) values (‘123456’,60)”;
c o n n = m y s q l c o n n e c t ( ′ l o c a l h o s t ′ , ′ r o o t ′ , ′ ′ ) ; m y s q l s e l e c t d b ( ′ D B L i b 2 T e s t ′ ) ; m y s q l q u e r y ( ′ s t a r t t r a n s a c t i o n ′ ) ; / / m y s q l q u e r y ( ′ S E T a u t o c o m m i t = 0 ′ ) ; m y s q l q u e r y ( conn = mysql_connect('localhost','root',''); mysql_select_db('DB_Lib2Test'); mysql_query('start transaction'); //mysql_query('SET autocommit=0'); mysql_query( conn=mysqlconnect(localhost,root,);mysqlselectdb(DBLib2Test);mysqlquery(starttransaction);//mysqlquery(SETautocommit=0);mysqlquery(sql1);
mysql_query( s q l 2 ) ; i f ( m y s q l e r r n o ( ) ) m y s q l q u e r y ( ′ r o l l b a c k ′ ) ; e c h o ′ e r r ′ ; e l s e m y s q l q u e r y ( ′ c o m m i t ′ ) ; e c h o ′ o k ′ ; / / m y s q l q u e r y ( ′ S E T a u t o c o m m i t = 1 ′ ) ; / / m y s q l q u e r y ( sql2); if(mysql_errno ()){ mysql_query('rollback'); echo 'err'; }else{ mysql_query('commit'); echo 'ok'; } // mysql_query('SET autocommit=1'); // mysql_query( sql2);if(mysqlerrno())mysqlquery(rollback);echoerr;elsemysqlquery(commit);echook;//mysqlquery(SETautocommit=1);//mysqlquery(sql3);

目录 1 平台管理 - 1 - 1.1 登录 - 1 - 1.2 平台导航 - 1 - 1.3 设置 - 3 - 1.3.1 站点设置 - 3 - 1.3.2 账号同步 - 4 - 1.3.3 上传设置 - 6 - 1.3.4 SEO设置 - 9 - 1.3.5 邮箱短信 - 9 - 1.3.6 支付方式 - 11 - 1.3.7 权限设置 - 12 - 1.3.8 快递公司 - 13 - 1.3.9 运单模板 - 14 - 1.3.10 地区管理 - 15 - 1.3.11 配送区域 - 16 - 1.3.12 清理缓存 - 16 - 1.4 商品 - 17 - 1.4.1 商品分类 - 17 - 1.4.2 品牌管理 - 18 - 1.4.3 商品管理 - 19 - 1.4.4 类型管理 - 21 - 1.4.5 规格管理 - 23 - 1.4.6 图片空间 - 25 - 1.5 店铺 - 25 - 1.5.1 店铺管理 - 25 - 1.5.2 店铺等级 - 27 - 1.5.3 店铺分类 - 28 - 1.5.4 二级域名 - 28 - 1.5.5 店铺动态 - 29 - 1.5.6 店铺帮助 - 30 - 1.5.7 开店首页 - 32 - 1.5.8 自营店铺 - 33 - 1.6 会员 - 34 - 1.6.1 会员管理 - 34 - 1.6.2 会员级别 - 35 - 1.6.3 经验值管理 - 36 - 1.6.4 积分管理 - 37 - 1.6.5 预存款管理 - 37 - 1.6.6 分享绑定 - 38 - 1.6.7 会员相册 - 39 - 1.6.8 买家动态 - 39 - 1.6.9 聊天记录 - 41 - 1.7 交易 - 41 - 1.7.1 实物订单 - 41 - 1.7.2 虚拟订单 - 42 - 1.7.3 退款管理 - 43 - 1.7.4 退货管理 - 43 - 1.7.5 虚拟订单退款 - 44 - 1.7.6 咨询管理 - 44 - 1.7.7 举报管理 - 45 - 1.7.8 评价管理 - 47 - 1.7.9 投诉管理 - 47 - 1.8 网站 - 50 - 1.8.1 文章分类 - 50 - 1.8.2 文章管理 - 50 - 1.8.3 会员协议 - 52 - 1.8.4 页面导航 - 52 - 1.8.5 广告管理 - 53 - 1.8.6 首页管理 - 55 - 1.8.7 推荐位 - 59 - 1.8.8 友情连接 - 60 - 1.9 运营 - 60 - 1.9.1 基本设置 - 60 - 1.9.2 抢购管理 - 61 - 1.9.3 虚拟抢购设置 - 61 - 1.9.4 限时折扣 - 62 - 1.9.5 满即送 - 63 - 1.9.6 优惠套装 - 65 - 1.9.7 推荐展位 - 66 - 1.9.8 代金券 - 67 - 1.9.9 结算管理 - 70 - 1.9.10 虚拟订单结算 - 70 - 1.9.11 活动管理 - 70 - 1.9.12 兑换礼品 - 72 - 1.9.13 平台客服 - 75 - 1.9.14 平台充值卡 - 75 - 1.10 统计 - 76 - 1.10.1 概述及设置 - 76 - 1.10.2 行业分析 - 78 - 1.10.3 会员统计 - 81 - 1.10.4 店铺统计 - 82 - 1.10.5 销量分析 - 83 - 1.10.6 商品分析 - 85 - 1.10.7 营销分析 - 87 - 1.10.8 售后分析 - 89 - 1.11 手机端 - 89 - 1.11.1 首页编辑 - 89 - 1.11.2 分类图片设置 - 91 - 1.11.3 下载设置 - 92 - 1.11.4 意见反馈 - 92 - 1.11.5 手机支付 - 93 -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值