更新用户记录时创建日志记录

时间:2018-12-07 17:54:57

标签: php mysql logging

我正在尝试创建一个log表,以注册用户在我的应用程序上进行的所有事件(创建和更新记录)。
到目前为止,我可以在log表上注册创建记录的用户,但是现在当用户更新某些内容时,我需要为log表创建新的注册,例如:用户Mike注册向员工Kyle发送电话的恶魔(到目前为止,该操作正常),但是用户Mike注册了员工Kyle退还了该电话。 (该日志现在应注册更新,但会在log表上添加新记录。
谢谢!
到目前为止我有这个

$pdo = Database::connect();
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "INSERT INTO ativos (ativo,comentario,data_aquisicao,localizacao,fabricante,modelo,imei,
            numero_serie,ativo_sap,evento,data_evento,id_colaborador) 
            SELECT ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, id_colaborador 
            FROM colaboradores 
            WHERE nome = ?";
    $q = $pdo->prepare($sql);
    $q->execute(array($ativo,$comentario,$data_aquisicao,$localizacao,$fabricante,$modelo,$imei,$numero_serie,$ativo_sap,$evento,$data_evento,$id_colaborador));

if ($q) {
    //get last ID that was generated by previos insert
    $id_ativo = $pdo->lastInsertId();
    }
    $log  = "INSERT INTO log_ativos (acao_log,data_log,id_ativo,id_colaborador)
SELECT ?,?,?, id_colaborador
FROM colaboradores
WHERE nome = ?";
    $qlog = $pdo->prepare($log);
    $qlog->execute(array($acao_log2,$data_log2,$id_ativo,$id_colaborador));
    Database::disconnect();

当我更新log表的主记录时,它并没有在ativos表上创建新记录

1 个答案:

答案 0 :(得分:1)

我认为这是由于试图在colaboradores中查找一条记录,其中nome等于$id_colaborador,如果最后一个值是实际ID,则直接将其插入... < / p>

$log  = "INSERT INTO log_ativos (acao_log,data_log,id_ativo,id_colaborador)
            VALUES(?,?,?,?)";
$qlog = $pdo->prepare($log);
$qlog->execute(array($acao_log2,$data_log2,$id_ativo,$id_colaborador));