Uma analise rápida de como identificar e corrigir o erro de sintaxe no Mysql ao salvar/cadastrar um produto na plataforma Magento.
Vamos direto ao ponto, aqui temos o erro:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
Traduzindo temos um Erro de sintaxe ou violação de acesso.
Uma instalação padrão e estável do Magento jamais terá um erro desse tipo, então o que podemos deduzir é que o erro está ocorrendo em algum módulo, por meio de um observer.
Identificando o módulo
Para identificar o módulo, aconselho que seja desabilitado todos os módulos que foram instalado, um à um, testando o cadastro de produto antes de passar para o próximo módulo.
Atenção! Módulos de terceiro! Apenas!
Para fazer isso, vá em Sistema / Configurações / Avançado.
Observação!
- Desative o compilador do Magento
- Desative o cache
- Verifique se a hospedagem possuí algum acelerador de PHP (ex APC Cache)
- Faça fora do horário comercial de sua loja, evite o stress de correr contra o relógio!
Atenção!
Esse procedimento pode tirar a sua loja do ar, pois alguns módulos “mal feitos” quando desabilitados podem gerar um erro fatal!
Caso você não tenha suspeita sobre nenhum módulo, certifique-se que o usuário do banco que está configurado na loja tenha permissão total sobre o mesmo.
Verifique também se não ocorreu nenhuma migração de servidor ou manutenção em sua hospedagem!
Erro de sintaxe no Mysql em plataformas consolidadas (como o Magento) são raros, então em ultimo caso faça o rastreio até chegar a classe / função que está gerando o erro.