Se você estiver fazendo isso:
- Criar ou carregar um objeto
$o. - Atribuir
'12345'para a propriedade/coluna em questão. - Salvar
$oe deixe o MySQL truncar o valor para'1234'. - Acesse a propriedade/coluna em
$oe obtenha'12345'de volta.
então você está vendo um dos problemas de permitir que seu banco de dados manipule silenciosamente seus dados.
O salvamento é bem-sucedido, seu objeto não tem ideia de que o MySQL truncou os dados, então ele mantém o
'12345' em vez de recarregar essa coluna do banco de dados, e você tem dados inconsistentes em suas mãos. Se você estiver dependendo do MySQL truncando seus dados silenciosamente, provavelmente terá que fazer isso:
- Crie/carregue seu objeto.
- Atualizou as propriedades.
- Salve o objeto.
- Jogue fora sua referência local ao objeto.
- Carregue-o fresco do banco de dados para ter certeza de obter o real valores.
Eu recomendaria adicionar validações estritas aos seus objetos para evitar o truncamento silencioso dentro do MySQL. Ativando o modo estrito também evitaria esse problema, mas você precisaria revisar e aprimorar todo o tratamento de erros e validação de dados (o que não seria realmente uma coisa ruim).