ďťż
Podstrony
|
telcocafeWitam.Mam strukturę tabel na taki wzór: tabela A: id autoincrement inne pola tabela B: id z A inne pola Muszę dodać 2 rekordy: w tabeli A i w tabeli B, z tym, że "id z A" musi zawierać w sobie id rekordu, który został właśnie dodany. Dodajesz A, a po tym dodajesz do B bazując na danych z A ;) a jeśli między którymś z tych kroków ktoś inny doda rekord? To przypiszę nie do tego. Jeśli dobrze rozumiem, chcesz pobrać ID ostatniego rekordu. Poczytaj dokumentację PHP.$id = $db->lastInsertId(); //gdy używasz PDO $id = $db->insert_id; //gdy używasz MySQLi Możesz także objąć zapytania transakcją. :) Użytkownik Ferrari edytował ten post 11 listopad 2009, 18:18 a jeśli między którymś z tych kroków ktoś inny doda rekord? To przypiszę nie do tego. Możesz zablokować pierwszą tabelę do zapisu zanim nie zapiszesz wiersza w drugiej, lub też np. pobrać rekord po unikalnym zbiorze dodatkowych danych użytych w insercie. Jeżeli wykonujesz zapytania zaraz po sobie bez wykonywania wielu innych czynności to istnieje bardzo niewielka szansa że dojdzie kolejny wiersz. (no chyba że to aplikacja z bardzo dużą ilością napływających danych). Riklaunim, myślałem nad blokadą tabeli, ale może to potem powodować dziwne konsekwencje, a ponieważ projekt ma być poważny, to wolę nie ryzykować. Nad transakcjami myślałem, ale szkoda się aż tak wysilać :D Tego kodu z insert_id nie znałem, a to właśnie był strzał w 10. Dzięki. |
|||
Sitedesign by AltusUmbrae. |