想问一个对多模型中的MySQL事务处理办法
控制器调用多个模型,每个模型中都有数据库操作如何实现?
在控制器用可以db->tran_start()
但要每个模型中,如何调用数据库操作呢?
$CI->db->query("?")
这个?
----------------------------------
如何是多数据库操作,又怎么办呢?:lol ->trans_start()
->model1->func()
->model2->func()
->model3->func()
if(->trans_commit())echo 'ok';
else echo 'no ok';
多库用规范写法:数据库名.数据表名.字段名 操作 ->trans_start()
->model1->func()
->model2->func()
->model3->func()
if(->trans_commit())echo 'ok';
el ...
visvoy 发表于 2011-3-4 14:51 http://codeigniter.org.cn/forums/images/common/back.gif
我其实想问的是model1->func()这个函数中用到的DB链接还是$this->db 么?
那如果是多数据库操作每一个都得new 一下再用,那最后控制器中的DB还是同一个链接了吗?
每个模型中都得
$DB1 = $this->load->database('db1',TRUE);
最后在控制器中
还得
$DB1 = $this->load->database('db1',TRUE);
这一路下来,估计已经不是同一个事务流程了吧? 一个事物还要跨多个模型。。。我觉得这不是一个好的设计。 一个事物还要跨多个模型。。。我觉得这不是一个好的设计。
Hex 发表于 2011-3-4 22:12 http://codeigniter.org.cn/forums/images/common/back.gif
做的网页游戏里面还是会有很多的这种情况的
比方说:购买道具并发放的控制器
就得调用 货币的模型,扣钱
完成这个之后,紧接着还得调用发送道具的模型
这两个模型都有数据库操作,但还得成一个事务来处理。。。。
所以还是有些头痛。。。 做的网页游戏里面还是会有很多的这种情况的
比方说:购买道具并发放的控制器
就得调用 货币的模型, ...
jet66 发表于 2011-3-5 21:47 http://myci.tk/forums/images/common/back.gif
这应该放到一个模型里来做,这是一个原子操作。不同系统要根据实际情况设计。 这应该放到一个模型里来做,这是一个原子操作。不同系统要根据实际情况设计。 ...
Hex 发表于 2011-3-5 22:15 http://codeigniter.org.cn/forums/images/common/back.gif
放到一个模型里面,就容易所有模型都在一个模型里面。。OO对象很不清晰。。。。
页:
[1]