PDO lastInsertId(); |
PDO lastInsertId(); |
23.07.2020, 11:09:19
Post
#1
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) |
Uzywam PDO. Uzytkownik dodaje swoje konto. Generuje link na podstawie id ostatniego usera poprzez lastInsertId();. Mam jakis blad w query i wpis nie zostaje dodany do bazy danych lecz ostatnie ID wciaz rosnie. Z 3 000 uroslo do 80 000 - mozliwe ze boty. Jak moge sprawdzic ostatnie dodane ID do bazy bez dodawania wpisu do BD? Chcialbym podszkolic wiedze w PDO bo wedlug mnie skoro jest blad w query i wpis nie zostal dodany to ID nie powinno rosnac. Jacys experci na sali?
-------------------- TERA TRYBI.pl
|
|
|
23.07.2020, 11:14:17
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Najprościej na bazie:
Na końcu będzie info o AUTO_INCREMENT -------------------- |
|
|
23.07.2020, 11:35:06
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Najprościej na bazie:
Na końcu będzie info o AUTO_INCREMENT W innoDB jak wykonasz query nawet jesli ma błąd i nie doda się wiersz to AI i tak podbije się +1. W MyISAM ten feature nie występuje. |
|
|
23.07.2020, 11:46:43
Post
#4
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) |
W innoDB jak wykonasz query nawet jesli ma błąd i nie doda się wiersz to AI i tak podbije się +1. W MyISAM ten feature nie występuje. Wczoraj czytalem o tym. Czyli ze moje ID jest podbijane od samego query? Jak sprawdzic last AI? Mam dostep do PHPMyAdmin oraz mysql w konsoli Najprościej na bazie:
Na końcu będzie info o AUTO_INCREMENT No i pokazuje mi 2766 Juz nie rozumiem dlaczego PDO zwraca wyzsza wartosc? Ten post edytował MESSIAH :) 23.07.2020, 11:43:42 -------------------- TERA TRYBI.pl
|
|
|
23.07.2020, 11:50:23
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
A przed tym nieudanym INSERT nie ma innego?
-------------------- |
|
|
23.07.2020, 12:01:20
Post
#6
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) |
A przed tym nieudanym INSERT nie ma innego? Jak moge sprawdzic wszytskie AI dla wszystkich tabel? -------------------- TERA TRYBI.pl
|
|
|
23.07.2020, 12:04:33
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
-------------------- |
|
|
23.07.2020, 12:12:06
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
A dlaczego według ciebie id miało by nie rosnąć? Wyobraź sobie sytuację z kilkoma transakcjami na raz. Wyłóżylo by to cały system i ACID.
-------------------- |
|
|
23.07.2020, 16:03:44
Post
#9
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) |
Ok znalazlem. Wiec wyglada na to ze pierwsze query jest z bledem i przeskakuje na drugie query gdzie pobiera ID z tablicy logow. Cyfry sie zgadzaja tylko dlaczego tak sie dzieje? Skoro query jest wadliwe to powinno sie zapauzowac wykonywanie nastepnego. -------------------- TERA TRYBI.pl
|
|
|
23.07.2020, 16:07:58
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Skoro query jest wadliwe to powinno sie zapauzowac wykonywanie nastepnego. A niby dlaczego? Jeśli drugie może się wykonać bez problemu, kod nie przerywa się, to się wykonuje. -------------------- |
|
|
23.07.2020, 16:22:44
Post
#11
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) |
A niby dlaczego? Jeśli drugie może się wykonać bez problemu, kod nie przerywa się, to się wykonuje. Zawsze bylem przekonany ze PHP i MYSQL wykonuje sie tak samo. Teraz odkrylem ze jednak nie. Mam taki blad: Cytat Warning trigger [512] SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups, balance, timezone) VALUES ' at line 3 on Jak mam to ugryzc? -------------------- TERA TRYBI.pl
|
|
|
23.07.2020, 16:25:37
Post
#12
|
|
Grupa: Moderatorzy Postów: 36 457 Pomógł: 6296 Dołączył: 27.12.2004 |
z racji ze nie raczyles podac zapytania, ktore generuje ten blad, to strzelam ze chodzi o slowo kluczowe GROUPS ktore jest zastrzezone
https://dev.mysql.com/doc/refman/8.0/en/keywords.html zacznik uzywac `` do nazw kolumn -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
23.07.2020, 16:30:24
Post
#13
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) |
z racji ze nie raczyles podac zapytania, ktore generuje ten blad, to strzelam ze chodzi o slowo kluczowe GROUPS ktore jest zastrzezone https://dev.mysql.com/doc/refman/8.0/en/keywords.html zacznik uzywac `` do nazw kolumn Czy te `` mam uzywac w zapytaniu czy w parametrach gdzie sa definiowane? Czy to jest teraz taki wymog MYSQL 8 Wczesniej uzywalem wersji 5 cos i lykalo jak szalone bez zadnego bledu. -------------------- TERA TRYBI.pl
|
|
|
23.07.2020, 16:32:21
Post
#14
|
|
Grupa: Moderatorzy Postów: 36 457 Pomógł: 6296 Dołączył: 27.12.2004 |
Jakbys raczyl zajrzec do linka co podalem, to bys zobaczyl ze GROUPS pojawilo sie jako reserved wlasnie od mysql8. zas samo `` uzywa sie od wiekow
`` masz uzywac wszedzie tam gdzie uzywasz nazw kolumn oraz tabel -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
23.07.2020, 16:36:25
Post
#15
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) |
Jakbys raczyl zajrzec do linka co podalem, to bys zobaczyl ze GROUPS pojawilo sie jako reserved wlasnie od mysql8 zas samo `` uzywa sie od wiekow `` masz uzywac wszedzie tam gdzie uzywasz nazw kolumn oraz tabel O kurcze nie zajazylem tego powiazania - szukalem raczej informacji o apostrofie. Czyli mam w zapytaniu zarezerwowana nazwe GROUPS. OK traz rozumiem. Mam w zapytaniu zdefiniowane kilka tabel i musze kazda z osobna potrakotwac tym apostrofem czy jest jakis skrot na zawarcie ich w jednym? -------------------- TERA TRYBI.pl
|
|
|
23.07.2020, 16:38:28
Post
#16
|
|
Grupa: Moderatorzy Postów: 36 457 Pomógł: 6296 Dołączył: 27.12.2004 |
kazda z osobna
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
23.07.2020, 16:42:43
Post
#17
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Jeszcze z tego co piszesz wykonujesz kilka zależnych od siebie zapytań bez jakiejkolwiek transakcji i przechwytywania wyjątków. Dlatego lecą z błędami dalej.
-------------------- |
|
|
23.07.2020, 17:04:17
Post
#18
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) |
kazda z osobna Dziala wielkie dzieki bro. Zastanawiam sie czemu PDO nie wywalilo bledu ze uzywam zerezerwowanej nazwy. PHP nie obsluguje chyba tego bledu jeszcze. -------------------- TERA TRYBI.pl
|
|
|
23.07.2020, 17:17:23
Post
#19
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
https://www.php.net/manual/en/pdo.error-handling.php
Nie wyświetla bo tego nie ustawiłeś. -------------------- |
|
|
23.07.2020, 18:26:42
Post
#20
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) |
https://www.php.net/manual/en/pdo.error-handling.php Nie wyświetla bo tego nie ustawiłeś. Mam ustawione i zapisuje sie to w BD. Ale nic nie bylo napisane ze uzywam zarezerwowanej nazwy tylko ze jest blad w query. -------------------- TERA TRYBI.pl
|
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 01:47 |