Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает mysqli rollback 
:(
    Опции темы
Muerto
Дата 5.9.2010, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: нет
Всего: 4



Следовал примерам в интернете...

Делаю 
Код

  $this->conn_id-> autocommit(FALSE);
  $this->conn_id-> query("some query");
$this->conn_id->rollback();


Как я себе это представляю, autocommit false, позволяет делать rollback, если бы мы не хотели делать можно было бы сделать
Код

$this->conn_id-> autocommit(FALSE);
  $this->conn_id-> query("some query");
$this->conn_id->commit();


ДОпустим я удаляю все поля с базы данных, делаю rollback, они не возвращаются!

ВОт допустим "рабочий" пример которому я следовал
Код
о
$mysqli=new mysqli("localhost","user_name","password","db_name");

if(mysqli_connect_errno())
{
        echo "Connection failed: ".mysqli_connect_error();
}
else
{
        $mysqli->autocommit(FALSE);
        $mysqli->query("insert into tblbook (id,cid,book) values('','3','book3.1')");
        echo $q_ins=$mysqli->affected_rows."<br>";
        $mysqli->query("update tblbook set book='book3' where cid='3'");
        echo $q_upd=$mysqli->affected_rows."<br>";



        if($q_ins==1 && $q_upd==1)
        {
                $mysqli->commit();
                echo "Commit<br>";
        }
        else
        {
                $mysqli->rollback();
                echo "Rollback<br>";
        }
}




Или в моем варианте:
Код

$db=cload('db_con');
$data=$db->do_query("delete from test");// перед началом выполнения он делает $this->conn_id-> autocommit(FALSE);
$db->rollb();
$data=$db->do_query("select * from test"); //таблица пустая =-(
$db->fetch_result($data);



Это сообщение отредактировал(а) Muerto - 5.9.2010, 15:06


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 5.9.2010, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: нет
Всего: 4



Никто не пытался пользоваться этой функцией?


--------------------
user posted image
PM MAIL   Вверх
Nigel
Дата 6.9.2010, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 20.11.2007

Репутация: нет
Всего: 19



Нормально все работает. Включу телепатию: используется движок, который не поддерживает транзакционность?
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: нет
Всего: 4



Nigel, возможно это я и упускаю...
но судя по примеру выше вы видите что autocommit(false) это вроде бы то что нужно
можно почитать тут http://php.net/manual/en/mysqli.autocommit.php


--------------------
user posted image
PM MAIL   Вверх
enoff
Дата 7.9.2010, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: нет
Всего: 13



Muerto, постом выше подсказка, мануал читали.
Таблицы MyISAM (вероятно, они и используются) не поддерживают транзакции.

Добавлено через 1 минуту и 43 секунды
Посмотрел, об этом написано в мануале в комментариях.

Комментарии на php.net полезно читать smile 
PM MAIL ICQ Skype GTalk   Вверх
Muerto
Дата 7.9.2010, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: нет
Всего: 4



Спасибо, как то вчера на ночь глядя упустил слово движок в посте от Nigel
Таки да, в тестовой таблице используется Myisam кроме него ещё использую innodb но на нем не тестил...


--------------------
user posted image
PM MAIL   Вверх
enoff
Дата 7.9.2010, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: нет
Всего: 13



Muerto, таблицы InnoDB поддерживают транзакции  smile 
PM MAIL ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0573 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.