Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia para todos, tenho este código que faz o insert no banco, até ai, sem problemas, o que estou procurando é como posso pegar a query que foi executada para salvar no meu log
segue o código abaixo:
public function insert($rNome,$rUnidadeId,$rDepositoId,$rQtde,$rQtdeMin,$rQtdeMax,$rCodFornec,$rEpi,$rProtocolo,$rGrupoId){
try{
$data_cad=date('Y-m-d');
$rSql="INSERT INTO produtos (nome,unidade_id,deposito_id,qtde,qtde_min,qtde_max,cod_fornec,data_cad,epi,protocolo,grupo_id)
VALUE (:nome,:unidade_id,:deposito_id,:qtde,:qtde_min,:qtde_max,:cod_fornec,:data_cad,:epi,:protocolo,:grupo_id);";
$stm = $this->pdo->prepare($rSql);
$stm->bindValue(':nome', $rNome);
$stm->bindValue(':unidade_id', $rUnidadeId);
$stm->bindValue(':deposito_id', $rDepositoId);
$stm->bindValue(':qtde', $rQtde);
$stm->bindValue(':qtde_min', $rQtdeMin);
$stm->bindValue(':qtde_max', $rQtdeMax);
$stm->bindValue(':cod_fornec', $rCodFornec);
$stm->bindValue(':epi', $rEpi);
$stm->bindValue(':protocolo', $rProtocolo);
$stm->bindValue(':grupo_id', $rGrupoId);
$stm->bindValue(':data_cad', $data_cad);
$stm->execute();
if ($stm){
Logger('Usuario:['.LOGIN.'] - Inseriu produto');
}
return $stm;
}catch(PDOException $erro){
Logger('Usuario:['.LOGIN.'] - Erro: Arquivo: '.$erro->getFile().' na linha:'.$erro->getLine().' - Mensagem:'.$erro->getMessage());
//echo "<script>alert('Erro na linha: {$erro->getLine()}')</script>";
}
}Ops, desculpa ai, foi sem querer querendo, obrigado pela resposta, mas e quando vcs precisam recuperar a query, o que vcs fazem?
Não o faço. Normalmente verifico o estado do objeto (ao menos os dados mais importantes) e o usuário que o alterou.
Faço a lista dos parâmetros alterados (antes x depois) e salvo a alteração.
Na minha experiência e uso diário. Nunca realizei um rollback que não fosse de SGBD. Os log's mais servem para "achar um culpado". Se for erro humano, devem tratar pelo sistema, se for erro de software/hardare, é rollback do servidor e deu pra bola.
Obrigado, me ajudou bastante.
Você não pega. O bind é todo realizado no SGBD, a única query que você terá acesso é a mesma da variável $rSql.
Ps.: Você não é tão novo no fórum para usar títulos fora das regras.