Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL]Powiązane ze sobą zapytania
Lirdoner
post
Post #1





Grupa: Zarejestrowani
Postów: 500
Pomógł: 1
Dołączył: 29.09.2009

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


Witam, Przy rejestracji użytkownika muszę wprowadzić kilka rekordów do oddzielnych tabel.
Najpierw do tabeli użytkowników, potem do tabeli z kodem aktywacyjnym a na końcu do jeszcze jednej.
Do tych dwóch ostatnich tabel potrzebuję id właśnie wprowadzonego użytkownika. To nie będzie problemem (pdo->lastInstertId). Tylko teraz chciałbym mieć pewność, że jeżeli nie wykona się pierwsza zapytania to nie wykona się i drugi i trzecia, a jeżeli np. nie wykona się 3 to nie wykona się i pierwsze i drugie.
Da radę takie coś zrobić? Czytałem coś żeby użyć do tego transakcji, ale jak wtedy pobrać id użytkownika wprowadzonego właśnie do bazy?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Przykład z manuala
  1. <?php
  2. /* Begin a transaction, turning off autocommit */
  3. $dbh->beginTransaction();
  4.  
  5. /* Change the database schema and data */
  6. $sth = $dbh->exec("DROP TABLE fruit");
  7. $sth = $dbh->exec("UPDATE dessert
  8. SET name = 'hamburger'");
  9.  
  10. /* Recognize mistake and roll back changes */
  11. $dbh->rollBack();
  12.  
  13. /* Database connection is now back in autocommit mode */
  14. ?>


Innymi słowy, możesz wykonać kilka zapytań do bazy w trakcie jednej transakcji
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: 15.10.2025 - 05:15