No site do meu cliente, programado em PHP e que usa MySQL, os usuários devem preencher dados de avaliações de colaboradores. Mas em dois momentos, recebi notificações de usuários que vão continuar as avaliações e tem seus dados “perdidos”. Nesse caso de continuar as avaliações, na hora de registrar os dados na tabela do banco MySQL, são utilizadas instruções de UPDATE.
Olhando nos registros da tabela do MySQL, esses dados “perdidos” ficam com valores em zero (quando os campos são numéricos), vazios (quando são caractéres) e datas de calendário 0000-00-00.
Abaixo um exemplo mais resumido dessa instrução de UPDATE no MySQL:
$ sql = "UPDATE wt_aval_avaliacao_analista SET autonomia = '".$ _POST['autonomia']."', autonomiaexemplo = '".$ _POST['autonomiaExemplo']."', autonomiagestor = '".$ _POST['autonomiagestor']."', autonomiaexemplogestor = '".$ _POST['autonomiaExemploGestor']."', autonomiaconsenso = '".$ _POST['autonomiaconsenso']."', autonomiaexemploconsenso = '".$ _POST['autonomiaExemploConsenso']."', agilidade = '".$ _POST['agilidade']."', agilidadeexemplo = '".$ _POST['agilidadeExemplo']."', agilidadegestor = '".$ _POST['agilidadegestor']."', agilidadeexemplogestor = '".$ _POST['agilidadeExemploGestor']."', agilidadeconsenso = '".$ _POST['agilidadeconsenso']."', agilidadeexemploconsenso = '".$ _POST['agilidadeExemploConsenso']."', carreira1 = '".$ _POST['carreira1']."', carreira2 = '".$ _POST['carreira2']."', carreira3 = '".$ _POST['carreira3']."', carreira4 = '".$ _POST['carreira4']."', carreira5 = '".$ _POST['carreira5']."', carreira6 = '".$ _POST['carreira6']."', resultados = '".$ _POST['resultados']."', resultadosrelacao = '".$ _POST['resultadosrelacao']."', comentarioscolaborador = '".$ _POST['comentarioscolaborador']."', comentariosgestor = '".$ _POST['comentariosgestor']."', comentariosgerente = '".$ _POST['comentariosgerente']."', concluido = '".$ concluir."' WHERE idperiodo = " . $ _SESSION['idPeriodo'] . " AND idcolaboradoravaliado = " . $ _SESSION['idColaborador']; $ q = Doctrine_Manager::getInstance()->getCurrentConnection(); $ q->execute($ sql);
O que pode acontecer pra causar essa falha na instrução UPDATE do MySQL? Será que está relacionado a tempo de sessão que o usuário está logado? Alguma coisa relacionada com memória, browser que é utilizado, configuração da tabela?