Se você estiver fazendo isso:
- Criar ou carregar um objeto
$o
. - Atribuir
'12345'
para a propriedade/coluna em questão. - Salvar
$o
e deixe o MySQL truncar o valor para'1234'
. - Acesse a propriedade/coluna em
$o
e 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).