Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]gdzie w pamięci zostaje zapis do bazy PDO.
Forum PHP.pl > Forum > Przedszkole
szczrzcz
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ść.
viking
Może zależeć od transakcji. Pokaż kod. Zresztą skoro nie zapisuje to jaki ma być wynik?
szczrzcz
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ć.
Pyton_000
Jeśli masz InnoDB i insert się nie powiedzie to Autoincrement się zwiększa.
nospor
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.
Pyton_000
Ba z tego co pamiętam `lastInstertId` nie gwarantuje nawet że dostaniesz poprawny wynik biggrin.gif
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.