wordpress transaction 事务处理,wordpress商城支付中的事务处理

在做wordpress支付插件开发过程中,
需要用到transaction事务处理,
但是看了下官方的文档,
发现很少有相关的说明。

一、 wordpress 不支持 transaction 事务处理
1-1) 再仔细看了wordpress的数据表结构,
都是myisam类型,
是无法支持事务的。

wordpress商城

1-2) $wpdb 这个全局也没有事务操作的方法和函数
$wpdb 是wordpress操作数据库的类,
官方文档中没有关于事务的操作

看了下源码,
也没有。

这个可能跟 wordpress 的定位有关,
主要是面向博客系统,
用来开发新闻资讯类网站,
用不到事务。

但是企业用wordpress来做电子商务网站,在线商城,
这时是需要用到 transaction 事务…

猛击这里
观看《wordpress插件开发》系列视频

二、 wordpress 使用 transaction 事务的方法
2-1) 创建 innodb 事务表
由于myisam数据表是不支持事务的,
所以你不能使用wordpress系统表来做 transaction 事务,
需要你在插件开发或模板开发时,
创建自己的数据表,
表引擎为 innodb。

2-2) 使用自己的数据库操作类和方法
由于 $wpdb 没有提供 rollBack(), commit()等这些事务操作方法,
所以需要你自己开启事务,
在业务逻辑中使用 rollBack(), commit()

在php开发中,
通常自己使用 mysqli 或者 pdo 封装 transaction 事务操作。

三、 mysqli, pdo 封装 transaction 事务,使用wordpress的数据库信息
由于是在wordpress中开发事务,
所以为了兼容wordpress,
在封装事务时,
会使用wordpress的数据库连接信息,
而不是把连接信息写死。

这里需要在插件中获取 wordpress 数据库连接信息,
包括数据库地址,数据库登录账号和密码,wordpress 对应的数据库。

获取这些信息,
可以使用 $wpdb 这个全局变量。

猛击这里,
了解《wordpress 使用$wpdb获取数据库地址,账号和密码》

猜你喜欢

转载自blog.csdn.net/towtotow/article/details/80014291