php提交多个数据库,php – Magento单次提交中的多个数据库事务

news/2024/7/7 15:35:44

我知道如何在zend框架中做到这一点

$db->beginTransaction();

try {

$db->query(...);

$db->query(...);

$db->query(...);

.

.

.

$db->commit();

} catch (Exception $e) {

$db->rollBack();

}

但是我想用magento模型来做这件事

$db->beginTransaction();

try {

$modelOne = Mage::getModel('modulename/table1');

$modelTwo = Mage::getModel('modulename/table2');

$modelThree = Mage::getModel('modulename/table3');

$db->query($modelOne);

$db->query($modelTwo);

$db->query($modelThree);

.

.

.

$db->commit();

} catch (Exception $e) {

$db->rollBack();

}

如果他们中的任何人未能保存,那么所有人都应该回滚

谢谢

解决方法:

查看app / code / core / Mage / Core / Model / Resource / Transaction.php

此模型允许在事务中添加另一个模型作为对象.在保存期间,它会为每个添加的对象调用$object-> save().如果出现故障,就会打电话

$object-> getResource() – >每个对象的rollBack().您还可以通过addCommitCallback(array($object,’callbackFunctionName’))添加提交回调.

如果您需要删除交易,请拨打$transaction-> delete()而不是$transaction-> save()在这种情况下,它会调用$object-> delete()而不是$object-> save()宾语.

例:

try {

$transaction = Mage::getModel('core/resource_transaction')

->addObject(Mage::getModel('modulename/table1'))

->addObject(Mage::getModel('modulename/table2'))

->addObject(Mage::getModel('modulename/table3'));

$transaction->save();

} catch (Exception $e) {

echo $e->getMessage();

}

标签:php,magento,zend-framework

来源: https://codeday.me/bug/20190528/1171965.html


http://www.niftyadmin.cn/n/4072830.html

相关文章

.net 面试题系列文章五(附答案)

18.请叙述属性与索引器的区别。 属性 索引器 通过名称标识。 通过签名标识。 通过简单名称或成员访问来访问。 通过元素访问来访问。 可以为静态成员或实例成员。 必须为实例成员。 属性的 get 访问器没有参数。 索引器的 get 访问器具有与索引器相同的形参表。 属性的 set 访问…

Scrapy 框架 中间件 代理IP 提高效率

中间件 拦截请求跟响应进行ua(User-Agent ) 伪装 代理 IP中间件位置: 引擎 和下载器 中间 的中间件 ( 下载中间件)引擎 跟 spider 中间 的中间件 ( 爬虫中间件)(不常用)下载中间件中的ua 伪装 下载中间件可以拦截调度器发送给下载器的请求。可以将请求的相应信息进行篡改&#…

计算农历的函数

没仔细看过,网上搜来的代码:-------------------------------------------------------------------------------- [本篇全文] [回复本文] [本篇作者: top ] [本篇人气: 10] 发信人: top (英语六级&&PHP), 信区: Programming 标 题: 阴阳历算法 发信站:…

matlab数学实验分形,数学实验分形实例

《数学实验分形实例》由会员分享,可在线阅读,更多相关《数学实验分形实例(11页珍藏版)》请在人人文库网上搜索。1、数学实验报告学院: 班级: 学号: 姓名: 完成日期: 实验二 分形(一)练习题1一实…

python var函数,Python Pandas Series.var用法及代码示例

Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统。 Pandas是其中的一种,使导入和分析数据更加容易。Pandas 系列是带有轴标签的一维ndarray。标签不必是唯一的,但必须是可哈希的类型。该对象同时…

Windows网络守门人UserLock教程:UserLock教程:阻止规定时间以外的访问连接

IS Decisions公司旗下的UserLock为企业和组织提供了实施网络访问安全以及优化工作站使用的一系列有效方法。它通过阻挠来自于外部或者内部的恶意访问事件为Windows网络提供了真正的访问安全。UserLock下载试用 UserLock允许您创建规则用来阻止用户在授权时间以外连接到网络。本…

netfilter5表5链

**netfilter5表5链**netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤、数据包处理、地址伪装、透明代理、动态网络地址转换(Network Address Translat…

php超链接鼠标滑动加下划线,打造与众不同的鼠标滑过超链接下划线动画效果

众所周知,超链接元素在默认情况下鼠标滑过时会出现一条下划线。默认的超链接下划线动画十分的生硬,我们可以通过一些简单的处理,来制作出带平滑过渡效果的超链接下划线动画效果。先来体验一下这个超链接动画的效果,用鼠标滑过下面…