Создание записей журнала при обновлении записей пользователей - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь создать таблицу log, в которой регистрируются все события, которые пользователи делают в моем приложении (создавать и обновлять записи).
На данный момент я могу зарегистрировать в таблице log пользователя, которыйсоздает запись, но теперь мне нужно создать новый регистр для таблицы log, когда пользователь что-то обновит, например: пользователь Майк регистрирует девилера телефона для сотрудника Кайл (пока это работает) но затем пользователь Майк регистрирует, что сотрудник Кайл вернул этот телефон.(Журнал должен теперь регистрировать обновление, но добавлять новую запись в таблицу 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 голосов
/ 07 декабря 2018

Я думаю, это из-за попытки найти запись в colaboradores с nome, равным $id_colaborador, если это последнее значение является действительным идентификатором, вставьте его напрямую ...

$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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...