Jeśli to robisz:
- Utwórz lub wczytaj obiekt
$o
. - Przypisz
'12345'
do danej właściwości/kolumny. - Zapisz
$o
i niech MySQL skróci wartość do'1234'
. - Dostęp do właściwości/kolumny w
$o
i pobierz'12345'
z powrotem.
wtedy widzisz jeden z problemów polegający na tym, że baza danych po cichu manipuluje danymi.
Zapis się powiódł, Twój obiekt nie ma pojęcia, że MySQL obcięł dane, więc zachowuje '12345'
zamiast przeładowywać tę kolumnę z bazy danych, a masz niespójne dane na swoich rękach.
Jeśli zależy Ci na tym, że MySQL po cichu obcina dane, prawdopodobnie będziesz musiał to zrobić:
- Utwórz/załaduj swój obiekt.
- Zaktualizowano właściwości.
- Zapisz obiekt.
- Wyrzuć lokalne odniesienie do obiektu.
- Załaduj go prosto z bazy danych, aby mieć pewność, że otrzymasz prawdziwe wartości.
Zalecam dodanie ścisłych walidacji do twoich obiektów, aby uniknąć cichego obcinania w MySQL. Włączam tryb ścisły pozwoliłoby to również uniknąć tego problemu, ale wtedy musiałbyś przejrzeć i zaostrzyć całą obsługę błędów i sprawdzanie poprawności danych (co nie byłoby tak naprawdę złe).