Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dodawanie do bazy id utworzonego rekordu.
Forum PHP.pl > Forum > Przedszkole
NickOver
Po raz kolejny potrzebuję waszej pomocy.
Strona dodaje rekord do bazy danych i teraz potrzebuję aby pobierało id rekordu który się dodał i wrzucenie go do innej bazy. Szukałem w google ale niestety znalazłem tylko pobieranie ostatniego id, a niestety nie o to chodzi, ponieważ w tym samym czasie ktos inny moze tego uzywać.
Wydaje mi się że wszystko napisałem zrozumiale, ale jeśli coś było by niejasne to rozwinę. Przy okazji jeśli nie da się tego zrobić w php to prosił bym o konkretny skrypt js lub ajax'a ponieważ tych języków jeszcze nie znam.
Dzięki za pomoc wink.gif
Turson
Cytat
Szukałem w google ale niestety znalazłem tylko pobieranie ostatniego id, a niestety nie o to chodzi, ponieważ w tym samym czasie ktos inny moze tego uzywać.

lastInsertId. Wątpię, że w tym samym czasie będzie dodane nowe
NickOver
Cytat(Turson @ 4.04.2014, 14:26:56 ) *
lastInsertId. Wątpię, że w tym samym czasie będzie dodane nowe

Kurcze... Bez obrazy ale to czy wątpisz czy nie wątpisz mało mnie interesuje. Gdybym potrzebował pobrac ostatnie id to użył bym tego co napisałeś = tego co znalazłem w google, ale nie o to chodzi.
Turson
Spoko.
JS czy ajax wyjdzie na to samo bo i tak będzie musiało skorzystać z tego samego w php. Jak wrzucasz rekord do bazy to potem możesz pobrać id z warunkiem wyszukującym id po wrzuconych danych
viking
Poczytaj o transakcjach oraz trochę dokumentacji http://dev.mysql.com/doc/refman/5.5/en/inf..._last-insert-id
NickOver
Dzięki wielkie. Nie pomyślałem aby pobierał ostatnie id where cośtam. Jeszcze raz przepraszam że tak zareagowałem wink.gif
Sephirus
Twój problem rozwiazuje własnie lastInsertId - dlaczego?

Działa to w ten sposób, że jest to ostatnie ID dodanego rekordu jaki był wrzucony dla danego połaczenia MySQL - o ile nie masz w aplikacji ustawionych permanentnych połaczen do DB to własnie ta zmienna da Ci ID, którego szukasz.

Masz w aplikacji ustawione stałe połaczenia do DB? Na 99,999999% jestem pewien, że nie. Więc to powinno zadziałać - nie ważne ile osób korzysta aktualnie ze strony badz ile skryptow naraz jest odpalonych - kazdy korzysta z innego polaczenia wiec sytuacja pobrania zlego ID nie wystapi...

Jesli natomiast nie możesz tego zastosować to najlepsza opcja jest:

1. Zmienić strukture tabeli tak aby ID nie były automatycznie dodawane,
2. Przed dodaniem, zablokować dana tabele - sa na to komendy,
3. pobrac ostatni id z tabeli i dodac do niego 1
4. wrzucic rekord z nowym id
5. odblokowac tabele,
6. wrzucic to id do tej drugiej bazy

Pamiętaj tylko by dobrze to wszystko obsłużyć aby nie zablokować tabeli na długo.
trueblue
Koledze chyba nie chodzi o kwestię pobrania ostatniego ID, a jego zapis, tak aby zapis następował w takiej kolejności, jak jego odczyt.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.