我找不到任何正确的示例如何在codeigniter中执行多个插入查询。我已经尝试在模型中创建一个函数,包含多个插入查询。我得到的总是首先查询成功,而其他人根本没有执行。
我已经尝试过使用交易:$ this-> db-> trans_start(); 在我的情况下:$ db-> trans_start();当然还有$ 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);
}
}
答案 0 :(得分:1)
当然,在执行其余代码之前,您已经返回了!
$db->set('tgl_input', 'NOW()', FALSE);
return $db->insert('transaksi', $data); // <-- remove the keyword here
$logsaldodata = array(
删除该中间return
语句,然后离开$db->insert('transaksi', $data)
。 return
停止该功能,返回结果,其余的功能代码不会被执行。