• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
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 = '[email protected]';
$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.


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2020 MyBB Group.