当前位置: 首页 > news >正文

手机企业网站制作/网站优化提升排名

手机企业网站制作,网站优化提升排名,做个电商网站需要怎么做,郑州网络我是一个半路出家的PHP程序员,到目前为止,不算在培训班学习的时间,已经写代码整整两年了。可能由于工作业务的原因,在这两年中我没有用到过MySQL事务。就在昨天有个关于支付宝转账的业务不得不使用MySQL事务来完成,别人…

我是一个半路出家的PHP程序员,到目前为止,不算在培训班学习的时间,已经写代码整整两年了。可能由于工作业务的原因,在这两年中我没有用到过MySQL事务。就在昨天有个关于支付宝转账的业务不得不使用MySQL事务来完成,别人说了很多,还是不明白MySQL事务到底是个啥,于是就开始了新一轮的补课,出来混,欠下的知识账总是要还的。

先简单说一下我昨天遇到的那个业务,我要在移动端发起一个支付宝提现的业务,这个业务我之前是分三步写的:

第一步:

首先提现的话,我先要在提现表里写入一条提现记录,再更新一下用户余额表,这两条数据的记录都是个预提现的记录,就是说他们的状态都是处理中;

第二步:

然后在请求支付宝的第三方接口;

第三步:

如果接口请求成功,用户已经收到支付宝付给用户的钱后,我们在更新提现记录表的状态和用户余额表的数据。

如果接口请求失败,用户没有收到支付宝转给用户的钱,则提现记录表的状态为提现失败。

但是如果用户发起了提现,用户预提现业务已经进行,但是第三方支付宝接口请求失败,此时突然断电,则数据库状态无法更改,然后结果就不是我们预想的结果了。此时MySQL事务在这种业务中就显现出了自己的价值。

MySQL事务:一系列要执行的操作称为事务,而事务管理就是管理这些操作要么完全执行,要么完全不执行,就是说我上面的提现业务,要么全部要执行成功,要么全部不成功,不会出现执行半截的情况。MySQL事务存在的意义就是保证数据的完整性。但是mysql中并不是所有的数据引擎都支持事务管理的,只有innodb支持事务管理。

事务管理的特性:

1. 原子性:事务的整个操作是一个整体,不可以分割,要么全部成功,要么全部失败。

2. 一致性:事务操作的前后,数据表中的数据没有变化。

3. 隔离性:事务操作是相互隔离不受影响的。

4. 持久性:数据一旦提交,不可改变,永久的改变数据表数据。

事务管理操作:

开启事务管理:开启之后,下面的sql语句并不会马上执行并把结果写到表中,而是会写到事务日志中。

start transaction;

回退操作:回退会清掉开始事务管理之后写到事务日志中的内容,即恢复到开启事务管理之前。

语法:rollback;

注意:回退操作只是回退"写"的内容,对于普通的读表select语句不能回退。

事务提交:将sql语句的结果写到数据表中。

语法:commit;

示例代码:

1 /***2 * Notes :商家商户端支付宝提现3 * @Author : Dang Mengmeng4 * @Date : 2019/7/9 0009 10:015 * @param $params6 * @return mixed7 * @throws BadRequestHttpException8 */

9 public function storeWith($params){10 try{11 $payee_account = $params['pay_account'];12 $amount = $params['amount_of_acc'];13 $request = newAlipayFundTransToaccountTransferRequest();14 $connection = Yii::$app->db;15 $transaction = $connection->beginTransaction(); //开始事务16 //写入发起提现记录

17 $RES = StoreWith::updateWithData($x_id);18 $financeId = StoreWith::insertLog($params);19 $params['acc_id'] = $financeId;20 $paymentId = StoreWith::insertPaymentLog($params);21 $request->setBizContent("{" .

22 "\"out_biz_no\":$orderId," .

23 "\"payee_type\":\"ALIPAY_LOGONID\"," .

24 "\"payee_account\":$payee_account," .

25 "\"amount\":$amount," .

26 "\"remark\":\"收益提现\"" .

27 " }");28 $result = $aop->execute($request);29 $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";30 $resultCode = $result->$responseNode->code;31 if(!empty($resultCode) && $resultCode == 10000){32 //提现成功

33 $status = 1;34 //1.更新入账资金数据状态

35 StoreWith::updateWithDataTwo($x_id,$status);36 } else{37 //提现失败

38 $status = 2;39 StoreWith::updateWithDataTwo($x_id,$status);40 }41 if($resultCode == 10000){42 $transaction->commit();//事务提交

43 }else{44 $transaction->rollBack();//执行失败,事务回滚

45 }46 return $resultCode;47 }catch (\Exception $exception){48 throw new BadRequestHttpException($exception->getMessage());49 }50 }

欠下的知识账总是要还的,晚知道不如早知道!!!

学习宜早不宜迟,一首趁早送给大家。哈哈哈!!!

http://www.jmfq.cn/news/4919059.html

相关文章:

  • 中央政府网站的建设的意见/百度下载软件
  • 做外贸网站能用虚拟主机吗/中小企业网站优化
  • 大学物流仓储作业代做网站/政府免费培训 面点班
  • 西安最新公告/网站如何做关键词优化
  • 网站开发公司徐州/产品推广计划
  • 南京网站设计制作/常见的网络推广方法有哪些
  • 网站布局策划/怎么做游戏推广员
  • 利用网盘做视频网站/山西网络推广
  • 常用软件开发模型/seo关键词排名优化品牌
  • wordpress汽车模板下载/seo推广人员
  • 动易网站怎么进入后台/市场营销十大经典案例
  • 申请网站步骤/深圳seo博客
  • 做庭院的网站/百度知道app官方下载
  • vps自带ie浏览器不能访问网站/公司网站建设哪家公司好
  • 新网站如何做sem/成功的品牌推广案例分析
  • 网站开发css框架/汕头seo排名公司
  • 怎么搞免费的网站/企业网站定制
  • 高级又小众的公众号/企业网站优化推广
  • 网站快速优化排名/品牌seo推广
  • 给网站做镜像/广州:推动优化防控措施落
  • asp网站 被插入/国际域名注册网站
  • 深圳住房和建设管理局官方网站/搜索关键词推荐
  • 用php做购物网站视频/百度推广话术全流程
  • 书画网站模板/黑帽seo之搜索引擎
  • 做网站购买服务器多少钱/互联网营销师考试
  • 怎么用网站推广/成都做网络推广的公司有哪些
  • 个人做外贸网站违法吗/站长网
  • 吴川网站建设公司/互联网营销培训
  • 如何做网站链接/重庆网站seo技术
  • 小程序排名三大公司/沈阳关键词优化报价