2014-11-25 5 views
0

codeigniter에서 여러 삽입 쿼리를 실행하는 적절한 방법을 찾을 수 없습니다. 이미 두 개 이상의 삽입 쿼리를 포함하는 모델에서 함수를 만들려고했습니다. 내가 항상 첫 번째 쿼리 성공을 얻고, 다른 쿼리가 전혀 실행되지 않습니다.Codeigniter 다중 삽입 쿼리

나는 이미 트랜잭션을 사용해 보았습니다 : $ this-> db-> trans_start(); 내 경우 아래 : $ db-> trans_start(); off course $ db-> trans_complete();

하지만 그건 도움이되지 못했습니다. 항상 실행 된 쿼리 만 삽입하십시오. 한 번에 모든 삽입/업데이트/삭제 쿼리를 실행하려면 어떻게해야합니까?

예 : 물론

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
class Deposit_model extends CI_Model 
{ 
    function __construct() 
    { 
      // Call the Model constructor 
      parent::__construct(); 

    } 




    public function inputdeh() 
    { 
      $this->load->helper('url'); 
      $CI =& get_instance(); 
      $db = $CI->load->database('local', TRUE); 

      $id_member = $this->input->post('id_member'); 
      $jumlah = $this->input->post('jumlah'); 
      $ket1 = $this->input->post('ket'); 
      $ket = 'WEB/'.$ket1; 


     $saldoawal = $db->query("select saldo from member where id_member='$id_member'"); 
     $saldoawa['saldo'] = $saldoawal->row('saldo'); 
     $saldoaw = $saldoawa['saldo']; 

     $saldoak = $saldoaw + $jumlah; 
     //$_POST[jumlah]=number_format($_POST['jumlah'],"."); 
     //$saldoak = number_format($saldoak); 
     //$dep = number_format(floatval($jumlah)); 

     $result = $db->query("select nama from member where id_member='$id_member'"); 
     $namar['nama'] = $result->row('nama'); 
     $nama = $namar['nama']; 

     $resulthp = $db->query("select hp from member_hp where id_member='$id_member' LIMIT 1 OFFSET 0"); 
     $hpr['hp'] = $resulthp->row('hp'); 
     $nohp = $hpr['hp']; 

     //$now = 'NOW()'; 
     $user = 'adminweb'; 


     $data = array(
     'id_member' => $this->input->post('id_member'), 
     'nama' => $nama, 
     'jml' => $this->input->post('jumlah'), 
     'saldo_awal' => $saldoaw, 
     'saldo_akhir' => $saldoak, 
     'kode_trx' => '1', 
     'status' => '1', 
     'ket' => $ket, 
     'user_input' => $user, 
     ); 
     $db->set('tgl_transaksi', 'NOW()', FALSE); 
     $db->set('tgl_input', 'NOW()', FALSE); 

     return $db->insert('transaksi', $data); 

     $logsaldodata = array(
     'id_member' => $this->input->post('id_member'), 
     'saldo' => $saldoaw, 
     'act' => $this->input->post('jumlah'), 
     'ket' => 'Deposit Tambah~True#', 
     ); 
     $db->set('tgl', 'NOW()', FALSE); 
     $db->set('ref', 'last_insert_id()', FALSE); 
     return $db->insert('log_saldo', $logsaldodata); 
} 
} 

답변

1

, 당신은 나머지 코드를 실행하기 전에 반환있어!

$db->set('tgl_input', 'NOW()', FALSE); 
return $db->insert('transaksi', $data); // <-- remove the keyword here 
$logsaldodata = array(

$db->insert('transaksi', $data)을두고, 그 중간 return 문을 제거합니다. return이 기능을 중지하고 이 결과로을 반환하면 나머지 기능 코드는 실행되지 않습니다.

+0

고마워 Damien Pirsy, 나는 T.T. 전에 알아 차리지 못했습니다! – bandungeuy