2014-07-10 1 views
-2

나는 잘 운영되는 기본적인 CRUD 애플리케이션을 가지고있다. 뭔가 변경되면 로그에 항목을 추가하려고합니다. 예를 들어 누군가 레코드를 추가합니다.MySQL changelog

누군가 기존 레코드를 업데이트하면 로그에 변경된 내용 만 표시되기를 원합니다.

Name 
Address 
City 
State 
Zip 

그래서 주소 변경 (만 주소), 내가 말하고 로그를 원하는 경우 :
'Address changed from YYY to ZZZ' 

가 여기 내 현재 명령문의 예를 들어, 나는 다음과 같은 필드가있어 로그를 작성하십시오. 무엇을 바꾸어야합니까?

INSERT log SET user_id = '$logid', username = '$logname', usertime = '$logdate', ipaddress = '$_SERVER[REMOTE_ADDR]', action = 'update', name = '$name', address = '$address', city = '$city', state = '$state', zip = '$zip' 

답변

0

구문은 your_table 삽입 반입니다 ...하지만 당신은 것입니다 업데이 트 묘사 : UPDATE your_table SET의 VAR1 = '새로운 가치'조건을. 변경 사항을 처리하는 경우 IF, ELSEIF, ELSE를 사용하여 PHP에서이를 수행 할 수 있습니다.

0

필자는 MYSQL TRIGGER를 사용하여 삽입, 업데이트 또는 삭제를 감지하고 MYSQL UDF를 사용하여 일부 외부 로그 파일에 기록합니다. 추가 트리거 SQL 문을 작성해야합니다. SQL 문은 문제의 일부만 해결합니다. http://www.w3resource.com/mysql/mysql-triggers.php#MST MySQL의 UDF : Mysql trigger write data to file

연구 MYSQL 트리거와 UDF는 목표

MySQL의 트리거 달성하기 위해