Transações não está funcionando corretamente na consulta de inserção

Zakaria Sichaib:

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 !

Nigel Ren:

Quando você chama returnele 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;

Acho que você gosta

Origin http://10.200.1.11:23101/article/api/json?id=387597&siteId=1
Recomendado
Clasificación