Mysql
 sql >> база данни >  >> RDS >> Mysql

Codeigniter транзакции

Използване на transactions означава поддръжка на бази данни за безопасно вмъкване на данни. Така че в Codeigniter пишем всички функции, свързани с базата данни в Model не в Controller. . И във втория си код (който не работи) сте посочили модел там.(utils ). Толкова просто, сигурен съм, че това няма да работи. Тъй като това не е вмъкване на данни с паралелни модел и контролер. Транзакцията трябва да бъде кодирана в Модела (Ще напиша в Модел в моя отговор ).

Заредете и тези неща

  1. Библиотека с бази данни
  2. Клас на модела
  3. Помощник за URL адреси
  4. Сесия

Предположения

Във вашия код сте използвали $data и $test като масив. Така че предполагам, че има два масива за вмъкване и актуализиране на данни.

Вашите набори от данни

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

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

Вашият код

$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;
}

Бележки

  1. По подразбиране Codeigniter изпълнява всички транзакции в строг режим. Когатострогият режим еактивиран , ако изпълнявате няколко групи транзакции, ако една група не успее, всички групи ще бъдат върнати обратно. Ifstrict режимът е деактивиран , всяка група се третирасамостоятелно , което означава, че неуспехът на една група няма да засегне други .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. WEEKOFYEAR() Примери – MySQL

  2. MySQL параметризирани заявки

  3. SQL Inner Join – Как да се присъедините към 3 таблици в SQL и MySQL

  4. Импортирайте SQL файл в mysql

  5. Функция MySQL LOG() – Връща естествения логаритъм на стойност