Необходимо выполнить отслеживание базы данных [БД] для моего портала, который построен на платформе CodeIgniter.
Поскольку мой портал построен на платформе codeigniter, все запросы к базе данных [insert, update, delete, select
] будут выполняться с помощью класса построителя запросов.
$this->db->insert('mytable', $object);
$this->db->update('mytable');
...
Для отслеживания БД я создал таблицу с именем dblogs
, где все запросы, соответствующие каждому действию [insert, update, select, ...
], которое пользователь выполняет на портале, будут вставляться вместе с идентификатором сеанса пользователя.
dblogs
структура таблицы , я предпочитаю:
TransactionID
UserID [user session id]
ProjectID
Action [insert, update, ...]
Module [in which module the action is performed like login, email, ...]
Query [complete query]
Query Status [whether the query executed successfully or not]
DateTime
IPAddress
MVC [model - controller - view file names where the action is performed]
система / база данных / DB_query_builder.php
public function insert($table = '', $set = NULL, $escape = NULL)
{
if ($set !== NULL)
{
$this->set($set, '', $escape);
}
if ($this->_validate_insert($table) === FALSE)
{
return FALSE;
}
$sql = $this->_insert(
$this->protect_identifiers(
$this->qb_from[0], TRUE, $escape, FALSE
),
array_keys($this->qb_set),
array_values($this->qb_set)
);
$this->_reset_write();
$ins = $this->query($sql);
//INSERT INTO DBLOGS
$this->query("INSERT INTO `dblogs` (`user_id`,`proj_id`,`action`,`query`,`query_status`,`date_time`,`ipaddress`,`mvc`)
VALUES ('".$_SESSION['user_id']."', '2019-05-08 00:00:00', '1','test')");
return $ins;
}