Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Transakcje z kodem inicjującym

Korzystanie z transactions oznacza obsługę baz danych w celu bezpiecznego wprowadzania danych. Tak więc w Codeigniter piszemy wszystkie funkcje związane z bazą danych w Modelu nie w kontrolerze. . A w drugim kodzie (który nie działa) wskazałeś tam model.(utils ). Tak proste, że jestem pewien, że to nie zadziała. Ponieważ nie jest to wstawianie danych z równoległym modelem i kontrolerem. Transakcja powinna być zakodowana w Modelu(W mojej odpowiedzi napiszę w Modelu ).

Załaduj również te rzeczy

  1. Biblioteka baz danych
  2. Klasa modelu
  3. Pomocnik URL
  4. Sesja

Założenia

W kodzie użyłeś $data i $test jako tablica. Zakładam więc, że istnieją dwie tablice do wstawiania i aktualizowania danych.

Twoje zbiory danych

$data = array(
   'title' => 'My title' ,
   'name' => 'My Name' ,
   'date' => 'My date'
);

$id = 007;
$test = array(
   'title' => $title,
   'name' => $name,
   'date' => $date
);

Twój kod

$this->db->trans_start(); # Starting Transaction
$this->db->trans_strict(FALSE); # See Note 01. If you wish can remove as well 

$this->db->insert('table_name', $data); # Inserting data

# Updating data
$this->db->where('id', $id);
$this->db->update('table_name', $test); 

$this->db->trans_complete(); # Completing transaction

/*Optional*/

if ($this->db->trans_status() === FALSE) {
    # Something went wrong.
    $this->db->trans_rollback();
    return FALSE;
} 
else {
    # Everything is Perfect. 
    # Committing data to the database.
    $this->db->trans_commit();
    return TRUE;
}

Notatki

  1. Domyślnie Codeigniter uruchamia wszystkie transakcje w trybie ścisłym. Gdytryb ścisły jest włączony , jeśli uruchamiasz wiele grup transakcji, jeśli jedna grupa nie powiedzie się, wszystkie grupy zostaną wycofane. Jeśli tryb ścisły jest wyłączony , każda grupa jest traktowana niezależnie , co oznacza, że ​​porażka jednej grupy nie wpłynie na żadną inną .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Grupuj według MySQL i zamawiaj według

  2. Jak stworzyć bezserwerowe API GraphQL dla MySQL, Postgres i Aurora?

  3. Jak przesyłać i pobierać pliki PHP i MySQL

  4. Uzyskaj liczbę rekordów dla wszystkich tabel w bazie danych MySQL

  5. Czy używać SET NAMES