WordPress事务处理,wp商城transaction事务,$wpdb事务处理方法

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

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

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

看了下源码,也没有。

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

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

二、 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事务处理,wp商城transaction事务,$wpdb事务处理方法
滚动到顶部