Транзакции не работают должным образом в запросе вставки - PullRequest
0 голосов
/ 29 марта 2020

Итак, я пытаюсь выполнить запрос с помощью транзакции, но он не работает, так или иначе, я проверил все сообщения, но никаких исправлений, похоже, не работает! всякий раз, когда я удаляю транзакцию, запрос вставки работает просто отлично.

Вот контроллер:

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);

    }

Моя модель:

public function addEmployee($field){

         $this->db->trans_start();
         return $this->db->insert('Clients',$field);
         $this->db->trans_complete();

    }

Обратите внимание, что когда я переключаю модель на:

    public function addEmployee($field){


         return $this->db->insert('Clients',$field);


    }

Запись вставлена ​​успешно! Что означает, что с транзакцией что-то не так. В настоящее время я использую один запрос, чтобы проверить, работает ли он, поэтому я могу использовать несколько раз после этого. Обратите внимание, что таблицы являются таблицами InnoDB, поэтому проблема не в типе таблицы. Пожалуйста, помогите мне!

1 Ответ

3 голосов
/ 29 марта 2020

Когда вы вызываете return, она завершает функцию, поэтому, когда она нажимает

return $this->db->insert('Clients',$field);

, она не достигнет

$this->db->trans_complete();

, поэтому, возможно ...

$this->db->trans_start();
$return = $this->db->insert('Clients',$field);
$this->db->trans_complete();

return $return;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...