Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Dodawanie do bazy id utworzonego rekordu.
NickOver
post 4.04.2014, 13:21:55
Post #1





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

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


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
Go to the top of the page
+Quote Post
Turson
post 4.04.2014, 13:26:56
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


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

Ten post edytował Turson 4.04.2014, 13:27:35
Go to the top of the page
+Quote Post
NickOver
post 4.04.2014, 13:32:28
Post #3





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

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


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.
Go to the top of the page
+Quote Post
Turson
post 4.04.2014, 13:37:42
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


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
Go to the top of the page
+Quote Post
viking
post 4.04.2014, 13:40:09
Post #5





Grupa: Zarejestrowani
Postów: 6 377
Pomógł: 1116
Dołączył: 30.08.2006

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


Poczytaj o transakcjach oraz trochę dokumentacji http://dev.mysql.com/doc/refman/5.5/en/inf..._last-insert-id


--------------------
Go to the top of the page
+Quote Post
NickOver
post 4.04.2014, 13:40:46
Post #6





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

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


Dzięki wielkie. Nie pomyślałem aby pobierał ostatnie id where cośtam. Jeszcze raz przepraszam że tak zareagowałem wink.gif
Go to the top of the page
+Quote Post
Sephirus
post 4.04.2014, 13:44:56
Post #7





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


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.


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
trueblue
post 4.04.2014, 13:50:17
Post #8





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

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


Koledze chyba nie chodzi o kwestię pobrania ostatniego ID, a jego zapis, tak aby zapis następował w takiej kolejności, jak jego odczyt.

Ten post edytował trueblue 4.04.2014, 13:50:37


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.06.2025 - 06:12