Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Transakcje w ADODB
Kamil J.
post
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 29.12.2005
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Próbuję zrozumieć jak działają transakcję. Używam adodb i wg. manuala http://phplens.com/adodb/tutorial.smart.transactions.html próbuje to przetestować, lecz nie działa.


  1. <?php
  2. $db->StartTrans();
  3. $db->Execute("update tabela se p1 = 'ver zmieniona' where id = 1;");
  4. $db->Execute("update tabela set p2 = 'ver zmieniona2' where id = 1;");
  5. $db->CompleteTrans();
  6. ?>


Tutaj mam 2 przykładowe zapytania, 1 zawiera błąd, 2 jest dobre.
Ja to rozumiem tak: jeśli jakiegoś zapytania nie może wykonać to nie powinien wykonywać innych zapytań, a w tym przypdaku niestety to nie działa i 2 zap. jest wykonywane.

Czy coś źle rozumiem. Z góry dziękuje za odpowiedź.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kamil J.
post
Post #2





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 29.12.2005
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam, przepraszam, że dopiero teraz odpowiadam, ale sprawy wyższe.


Starym sposobem też nie chce działać, czyli coś u mnie źle.

  1. <?php
  2.  
  3. $cfg = array();
  4. $cfg['db'] = "mysql";
  5. $cfg['db_name'] = 'portal';
  6. $cfg['db_user'] = 'root';
  7. $cfg['db_pass'] = 'haslo';
  8. $cfg['db_host'] = 'localhost';
  9.  
  10. require_once("../core/libs/adodb/adodb.inc.php");
  11.  
  12. $db = NewADOConnection($cfg['db']);
  13. @$db->Connect($cfg['db_host'], $cfg['db_user'], $cfg['db_pass'], $cfg['db_name']);
  14.  
  15.  
  16.  
  17.  
  18. $sql = "update tabela set value = 'zmieniona1' where id = 1";
  19.  
  20.  
  21. $sql2 = "update tabela se value = 'zmieniona2' where id = 2";
  22.  
  23.  
  24.  
  25.  
  26.  
  27. $db->BeginTrans();
  28. $ok = $db->Execute($sql);
  29. if ($ok) $ok = $db->Execute($sql2);
  30. if (!$ok) $db->RollbackTrans();
  31. else $db->CommitTrans();
  32.  
  33.  
  34. ?>


Moje MySQL: 5.0.24, chyba powinien obsługiwać transakcje (zestaw WebServ)

Tabele używam InnoDB do tego.

Chyba, że coś źle rozumiem. Czy transakcje powinny reagować na błędy w składni zapytania?

Proszę o pomoc i z góry dziękuję.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 07:04