Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysqli] Problem z mysqli - nie dzialaja transakcje
terabit
post 6.02.2010, 15:16:44
Post #1





Grupa: Zarejestrowani
Postów: 170
Pomógł: 4
Dołączył: 11.08.2006

Ostrzeżenie: (10%)
X----


Witam,
mam taki kod:
  1. <?php
  2.  
  3. $mysqli = new mysqli('localhost', 'xxx', 'xxx', 'xxx');
  4.  
  5. if (mysqli_connect_errno()) {
  6. echo 'Cannect failed: ' . mysqli_connect_error();
  7. }
  8.  
  9.  
  10. $mysqli->autocommit(FALSE);
  11.  
  12. $mysqli->query("INSERT INTO uczniowie (id, imie, nazwisko , wiek, id_szkoly, srednia)
  13. VALUES (NULL , 'alexia', 'jakas', '14', '6', '3.32')");
  14. $mysqli->query("INSERT INTO uczniowie (imie) VALUES ('Adamek', 4, 2)");
  15.  
  16.  
  17. if (!$mysqli->commit()) {
  18. $mysqli->rollback();
  19. }
  20.  
  21. $mysqli->close();


po uruchomieniu zawsze zostaje dodany jeden rekord do bazy a nie powinno dodac zadnego z powodu blednej drugiej instrukcji.
Jeśli to samo napisze z użyciem PDO lub w bazie w golym SQL to dziala bez problemów a z mysqli nie chce...

Pomóżcie winksmiley.jpg

Ten post edytował terabit 6.02.2010, 15:17:37


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
terabit
post 6.02.2010, 16:13:43
Post #2





Grupa: Zarejestrowani
Postów: 170
Pomógł: 4
Dołączył: 11.08.2006

Ostrzeżenie: (10%)
X----


@vokiel - rozumiem o co chodzi winksmiley.jpg

teraz widzę że na php.net jest podobny przydład jak ten od Mchl:
  1. <?php
  2. $all_query_ok=true; // our control variable
  3.  
  4. //we make 4 inserts, the last one generates an error
  5. //if at least one query returns an error we change our control variable
  6. $mysqli->query("INSERT INTO myCity (id) VALUES (100)") ? null : $all_query_ok=false;
  7. $mysqli->query("INSERT INTO myCity (id) VALUES (200)") ? null : $all_query_ok=false;
  8. $mysqli->query("INSERT INTO myCity (id) VALUES (300)") ? null : $all_query_ok=false;
  9. $mysqli->query("INSERT INTO myCity (id) VALUES (100)") ? null : $all_query_ok=false; //duplicated PRIMARY KEY VALUE
  10.  
  11. //now let's test our control variable
  12. $all_query_ok ? $mysqli->commit() : $mysqli->rollback();
  13.  
  14. $mysqli->close();
  15. ?>


Zmyliła mnie po prostu książka wydana przez Zend... nie spodziewałem się takich błędów winksmiley.jpg

Ten post edytował terabit 6.02.2010, 16:14:00


--------------------
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 Wersja Lo-Fi Aktualny czas: 23.06.2025 - 10:06