Показать сообщение отдельно

  #7  
Старый 28.01.2009, 18:14
svesve
Постоянный
Регистрация: 15.06.2007
Сообщений: 527
Провел на форуме:
1734541

Репутация: 214


По умолчанию

Всем привет,появилась необходимость сделать небольшой аудит бд.
т.е. на каждое изменение делать наобх записи в таблице аудита.
тригерры не катят т.к. в одном триггере нельзя выполнить неск дейтвий(н-р 2..-10 инсертов) да и таблицы такие разные что под каждую надо писать свой триггер:
формат ввода данных в аудит такой
PHP код:
INSERT INTO audit set `date`=now(),`time`=now(),`user_id`='$_SESSION[user_id]',
`
table`='название табицы',`column`='колонка которая изменилась',`pk`='примари кей табл',`oldvalue`='',`newvalue`=$_POST[user_id]
приведу конкретный пример(запрос в бд)
PHP код:
"INSERT INTO holidays (id,user_id,date_start,date_finish,type_id,audit_id) 
VALUES('','
$_POST[user_id]','$_POST[date_start]',
'
$_POST[date_finish]','$_POST[holidays_type]',
'
$_SESSION[user_id]')"
отправка в аудит:
PHP код:
$audit="INSERT INTO audit set `date`=now(),`time`=now(),`user_id`='$_SESSION[user_id]',
`table`='holidays',`column`='user_id',`pk`='id',`oldvalue`='',
`newvalue`=
$_POST[user_id]"
$audit2="INSERT INTO audit set `date`=now(),`time`=now(),`user_id`='$_SESSION[user_id]',
`table`='holidays',`column`='С',`pk`='id',`oldvalue`='',
`newvalue`='
$_POST[date_start]'"
$audit3="INSERT INTO audit set `date`=now(),`time`=now(),`user_id`='$_SESSION[user_id]',
`table`='holidays',`column`='По',`pk`='id',`oldvalue`='',
`newvalue`='
$_POST[date_finish]'"
........ 
Дак вот думаю реально ли написать функцию которой на вход мы будем подавать сам запрос в таблицу а она уже (через регулярки или еще как) будет инсертить в аудит и выдирать поля,значения и действия...И САМОЕ ГЛАВНОЕ чтоб это было практически универсально для каждой таблицы...у кого какие домыслы,поделитесь!?

Последний раз редактировалось svesve; 28.01.2009 в 18:17..
 
Ответить с цитированием