Então eu estou tentando executar uma consulta usando uma transação, mas ele não está funcionando de alguma forma eu fiz deixe visualizar todas as mensagens, mas nenhuma correção parece estar funcionando! sempre que eu remover a transação a consulta de inserção funciona muito bem.
Aqui está o controlador:
public function addEmployee(){
$field = array(
'NomClient'=>$this->input->post('fullName'),
'TelClient'=>$this->input->post('tel'),
'WilayaClient'=>$this->input->post('wilaya'),
'CommuneClient'=>$this->input->post('commune'),
'AdresseClient'=>$this->input->post('adresse'),
'StatusID'=>$this->input->post('statusCommande'),
'TelevendeuseID'=>$this->input->post('televendeuse')
);
$result= $this->m->addEmployee($field);
$msg['success'] = false;
$msg['type'] = 'add';
if($result){
$msg['success'] = true;
}
echo json_encode($msg);
}
Meu modelo :
public function addEmployee($field){
$this->db->trans_start();
return $this->db->insert('Clients',$field);
$this->db->trans_complete();
}
Por favor, note que quando eu mudar o modelo para:
public function addEmployee($field){
return $this->db->insert('Clients',$field);
}
O registro é inserido com sucesso! O que significa que algo está errado com a transação. Atualmente estou usando uma consulta para testar se está trabalhando para que eu possa usar múltiplos onces depois disso. Observe que as tabelas são tabelas InnoDB para que o problema não é com o tipo de tabela. Por favor, me ajude !
Quando você chama return
ele vai terminar a função, por isso, quando ela atinge
return $this->db->insert('Clients',$field);
ele não vai chegar a
$this->db->trans_complete();
então talvez...
$this->db->trans_start();
$return = $this->db->insert('Clients',$field);
$this->db->trans_complete();
return $return;