![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 12.11.2005 Skąd: hen hen Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Pracuje aktualnie nad zwiększaniem wartości pola auto_increment/primary key o 1. Wiem, istnieje kilka funkcji php oraz mysql np: mysql_insert_id() lub LAST_INSERT_ID(), jednak zwracają one wartość ostatniego polecenia INSERT. A co jeśli to polecenie jest pierwszym poleceniem w skrypcie i nie ma z czego ściągnąć wartości? Ja, korzystają z informacji znalezionych na tym forum stworzyłem coś takiego:
...skrypt działa, jednak istnieje możliwość, że w czasie pomiędzy wykonaniem polecenia SELECT i INSERT zostanie zmieniona wartość pola post_id. W takim wypadku mysql zgłosi błąd. Jeśli ma ktoś jakiś ciekawy pomysł, przedewszystkim prostszy chętnie wysłucham... Pozdrawiam Ten post edytował missile 21.03.2006, 10:13:57 |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 13 Pomógł: 0 Dołączył: 6.09.2005 Skąd: Kraków / Katowice / Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Pole auto_increment zostało właśnie po to stworzon żeby sie o takie rzeczy nie martwić:
Pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ... |
|
|
![]()
Post
#3
|
|
Administrator serwera Grupa: Developerzy Postów: 521 Pomógł: 13 Dołączył: 2.04.2004 Skąd: 52°24' N 16°56' E Ostrzeżenie: (0%) ![]() ![]() |
A jeśli koniecznie chcesz swoim sposobem inkrementować, to możesz użyć blokowania tabel (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 12.11.2005 Skąd: hen hen Ostrzeżenie: (0%) ![]() ![]() |
Wiem, znam obydwa sposoby, o tym pierwszym co prawda zapomniałem (choć to podstawy) jednak problem wynikał z tego iż chcę wstawić do pola post_topic_id takiej samej wartości jaką przybrało pole post_id(auto_increment). Zależy mi na jak największym zoptymalizowaniu skryptu. Myślałem nad blokowaniem tablic, jednak dochodzą wtedy dwa dodatkowe zapytania do bazy. Najlepszym wyjściem będzie chyba jednak korzystanie z opcji auto_increment w bazie oraz bezpośrednio po poleceniu INSERT skorzystanie z funkcji mysql_insert_id() i wykonania zapytania wstawiającego wartość z ostatniego zapytania INSERT...
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 5 Dołączył: 14.09.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 07:50 |