Ако правите това:
- Създаване или зареждане на обект
$o
. - Присвояване на
'12345'
към въпросното свойство/колона. - Запазете
$o
и оставете MySQL да съкрати стойността до'1234'
. - Достъп до свойството/колоната в
$o
и вземете'12345'
назад.
тогава виждате един от проблемите да оставите вашата база данни безшумно да обезобразява вашите данни.
Записването е успешно, вашият обект няма представа, че MySQL е съкратил данните, така че запазва '12345'
наоколо, вместо да презаредите тази колона от базата данни, и имате непоследователни данни в ръцете си.
Ако разчитате на това, че MySQL тихо съкращава вашите данни, вероятно ще трябва да направите това:
- Създайте/заредете вашия обект.
- Актуализира свойствата.
- Запазете обекта.
- Изхвърлете местната препратка към обекта.
- Заредете го прясно от базата данни, за да сте сигурни, че получавате истинския стойности.
Бих препоръчал да добавите строги валидации към вашите обекти, за да избегнете тихото съкращаване в MySQL. Включване на строг режим също ще избегне този проблем, но тогава ще трябва да прегледате и затегнете цялата си обработка на грешки и валидиране на данни (което всъщност не би било лошо).