ZF2 中的 ZendDb 如何控制事务?

2023-10-10php开发问题
0

本文介绍了ZF2 中的 ZendDb 如何控制事务?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

ZF1 Zend_Db 参考手册有一个整个部分 关于执行交易.

The ZF1 Zend_Db reference manual has an entire section on performing transactions.

ZF2 ZendDb 参考手册缺少关于交易.

如何在 ZF2 中执行事务?示例代码会有所帮助.

How do I perform transactions in ZF2? Example code would be helpful.

推荐答案

缺少的文档很奇怪.

为了找出发生了什么,我不得不深入ZendDbAdapter 的 API 文档.

To find out what happened, I had to dive into the API docs for ZendDbAdapter.

看起来beginTransactionrollbackcommit 都定义在ZendDbAdapterDriverConnectionInterface.这意味着它们是可在每个单独的适配器连接上调用的方法.不幸的是,连接本身被埋没了.

It looks like beginTransaction, rollback and commit are defined in ZendDbAdapterDriverConnectionInterface. This means that they are methods callable on every single adapter connection. Unfortunately the connection itself is rather buried.

我不清楚——目前无法提供一个例子——是弄清楚你实际上在哪个对象上调用了这些方法.在最坏的情况下,看起来您可能想要调用 $adapter->getDriver()->getConnection()->beginTransaction().

What I'm not clear on -- and can't provide an example for at this time -- is figuring out which object you actually call these methods on. In the worst case, it looks like you might want to call $adapter->getDriver()->getConnection()->beginTransaction().

呃.

我希望有更多知识的其他人以及手边的 ZF2 副本会看到这一点并提供更好的选择.

I'm hoping someone else with more knowledge, and a copy of ZF2 handy, will see this and provide a better option.

不要忘记你可以发出 BEGIN TRANSACTION/ROLLBACK/COMMIT/SET autocommit=... 自己的 SQL 语句.这可能没问题,因为它看起来不像 ZendDb 跟踪事务状态.

Don't forget that you can just issue BEGIN TRANSACTION/ROLLBACK/COMMIT/SET autocommit=... SQL statements yourself. This is probably OK, as it doesn't look like ZendDb keeps track of the transaction state.

这篇关于ZF2 中的 ZendDb 如何控制事务?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

PHP实现DeepL翻译API调用
DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以...
2025-08-20 php开发问题
168

PHP通过phpspreadsheet导入Excel日期数据处理方法
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的...
2024-10-23 php开发问题
287

mediatemple - 无法使用 codeigniter 发送电子邮件
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)...
2024-08-23 php开发问题
11

Laravel Gmail 配置错误
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)...
2024-08-23 php开发问题
16

将 PHPMailer 用于 SMTP 的问题
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)...
2024-08-23 php开发问题
4

关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)...
2024-08-23 php开发问题
17