Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Транзакция в PDO

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Sanek_OS9
Отправлено: 20 Марта, 2015 - 02:21:28
Post Id



Гость


Покинул форум
Сообщений всего: 115
Дата рег-ции: Окт. 2012  
Откуда: Украина


Помог: 0 раз(а)




Здравствуйте, помогите разобраться с транзакциями в PDO. Задача такова, добавить данные в БД при условии что все данные будут добавлены, иначе ничего не добавлять.
Делаю это так:
PHP:
скопировать код в буфер обмена
  1.                 try{
  2.                         DB::me()->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  3.                         DB::me()->beginTransaction() ;
  4.                         // создаем профиль
  5.                         $q = DB::me()->prepare("INSERT INTO `kolhoz_user` (`id`) VALUES (?)") ;
  6.                         $q->execute(Array($this->id)) ;
  7.                        
  8.                         $this->addGround('ground', 4) ;
  9.                        
  10.                         $this->addGround('petground', 4) ;
  11.                        
  12.                         $this->addGround('fishground', 4) ;
  13.                         DB::me()->commit() ;
  14.                 }catch(Exception $e){
  15.                         DB::me()->rollBack() ;
  16.                         echo 'Ошибка: ' . $e->getMessage()  ;
  17.                 }
  18.  

В одной из таблиц намеренно допустил ошибку в названии поля, скрипт выдает соответствующую ошибку но данные все равно добавляет в те таблицы в которых нет ошибок.
(Добавление)
Проблема найдена, Тип таблиц был выбран MyISAM, поставил InnoDB теперь все работает.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB