Welcome Guest, Not a member yet? Register   Sign In
CI's mysql transction question
#1

[eluser]chmod[/eluser]
<?
...

$this->db->trans_start();
//扣除游票
$result_sub_payment = $this->payforgame_model->sub_payment($username,$payment);
//写消息到临时表中:payforgame_tmp
$privatekey = 'ZrySfXys2008@Test';
$base64_username = base64_encode($username);
//md5加密串, accName(base64编码后)+creditNum+orderId+约定码
$digit = md5($base64_username.$point.$orderId.$privatekey);
$result_payforgame_tmp = $this->payforgame_model->payforgame_tmp($username,$gameid,$areaid,$payment,$orderId,$digit);
//事务处理结束
$this->db->trans_complete();

...
?>


I use CI's transaction as above.

because the SQL query in my model,so I am not sure the transction will be run?
#2

[eluser]gtech[/eluser]
you can start and stop your transaction as you describe no problems (make sure you turn db_debug to FALSE or transactions do not work). The only problem you will find is when you call a transaction within a transaction, e.g. if payforgame_tmp had a trans_start and trans_complete the transaction would not work.


Even though the transaction will work in the above code, I personally think it makes more sense to engineer your code so that the transactions are left in the model (you can call functions that are in the same model).
#3

[eluser]chmod[/eluser]
good,thanks.




Theme © iAndrew 2016 - Forum software by © MyBB