Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]gdzie w pamięci zostaje zapis do bazy PDO.
szczrzcz
post 4.07.2017, 20:39:47
Post #1





Grupa: Zarejestrowani
Postów: 153
Pomógł: 0
Dołączył: 20.04.2017
Skąd: Warszawa

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


Używam PDO, mysql. Odpalam skrypt. Nieudany, w bazie nie dodano rekordu zapytania INSERT. Odpalam skrypt ponownie, debuguję. Debuger wskazuje liczbę wierszy tabeli jakby poprzednio dodano nowy rekord. Tabela w Phpmyadmin przeciwnie - nic nie dodano.

Co sprawia, że w kodzie jest nieaktualna wersja.Jak wyczyścić. Restart komputera pomaga, no ale bez jaj, nie będę restartował co chwilę.

Ma to związek z metodą PDO::lastInsertId. Ona zwraca błędna wartość.

Ten post edytował szczrzcz 4.07.2017, 20:44:01
Go to the top of the page
+Quote Post
viking
post 4.07.2017, 21:09:02
Post #2





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

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


Może zależeć od transakcji. Pokaż kod. Zresztą skoro nie zapisuje to jaki ma być wynik?


--------------------
Go to the top of the page
+Quote Post
szczrzcz
post 5.07.2017, 08:05:02
Post #3





Grupa: Zarejestrowani
Postów: 153
Pomógł: 0
Dołączył: 20.04.2017
Skąd: Warszawa

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


odkryłem że chodzi o wskaźnik AUTO_INCREMENT, nieudane próby insert inkrementują go mimo że id primarykey się nie zwiększa
ALTER TABLE penguins AUTO_INCREMENT=1001;

ale chyba tak ma być.
Go to the top of the page
+Quote Post
Pyton_000
post 5.07.2017, 08:37:46
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Jeśli masz InnoDB i insert się nie powiedzie to Autoincrement się zwiększa.
Go to the top of the page
+Quote Post
nospor
post 5.07.2017, 09:59:31
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Kolejna sprawa jest to, ze z tego co ty napisales to ty poprawnosc zapytania sprawdzasz przez pobranie lastInstertId. Jest to oczywiscie bledne podejscie. Poprawnosc zapytania masz sprawdzasz przez wynik funkcji wykonujacej zapytanie bo to ona informuje cie czy sie powiodlo czy nie. A juz najlepiej jak przerzucisz sie na wyjatki w PDO i to one beda cie infofmowaly ze cos poszlo nie tak.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pyton_000
post 5.07.2017, 10:02:54
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Ba z tego co pamiętam `lastInstertId` nie gwarantuje nawet że dostaniesz poprawny wynik biggrin.gif
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.08.2025 - 11:08