Mysql
 sql >> база данни >  >> RDS >> Mysql

VARCHAR(4), съхраняващ повече знака от четири

Ако правите това:

  1. Създаване или зареждане на обект $o .
  2. Присвояване на '12345' към въпросното свойство/колона.
  3. Запазете $o и оставете MySQL да съкрати стойността до '1234' .
  4. Достъп до свойството/колоната в $o и вземете '12345' назад.

тогава виждате един от проблемите да оставите вашата база данни безшумно да обезобразява вашите данни.

Записването е успешно, вашият обект няма представа, че MySQL е съкратил данните, така че запазва '12345' наоколо, вместо да презаредите тази колона от базата данни, и имате непоследователни данни в ръцете си.

Ако разчитате на това, че MySQL тихо съкращава вашите данни, вероятно ще трябва да направите това:

  1. Създайте/заредете вашия обект.
  2. Актуализира свойствата.
  3. Запазете обекта.
  4. Изхвърлете местната препратка към обекта.
  5. Заредете го прясно от базата данни, за да сте сигурни, че получавате истинския стойности.

Бих препоръчал да добавите строги валидации към вашите обекти, за да избегнете тихото съкращаване в MySQL. Включване на строг режим също ще избегне този проблем, но тогава ще трябва да прегледате и затегнете цялата си обработка на грешки и валидиране на данни (което всъщност не би било лошо).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Опитвате се да въведете данни в SQL таблица с помощта на PHP / Html от формуляра за регистрация

  2. java.sql.SQLException:Няма избрана база данни

  3. MySQL - СУМ на група времеви разлики

  4. Последици от дисковото пространство при задаване на стойност на колоната на MySQL на NULL вместо на 0 или ''

  5. Мигрирайте данни и схема от MySQL към SQL Server