我需要爲表更改創建審計記錄。對於我用這個觸發MYSQL審計程序和觸發器
BEGIN
CALL proc_audit_trasabilitate(new.stare,new.serie,new.id_palet);
END
調用觸發這裏面的過程:
BEGIN
DECLARE v_username VARCHAR(50);
SELECT @php_user_name into v_username;
INSERT INTO stari_istoric (stare,serie,id_palet,username) VALUES(p_stare,p_serie,p_id_palet,v_username);
END
基本上觸發插入作品和用戶名等領域之後插入但是當我使用一個新的觸發器(在更新我的表格後,用戶名將被上傳,默認值爲NULL。
@php_user_name填充像這樣:
if (isset($_SESSION['username'])) {
require_once 'libraries/Audit.class.php';
$db_ses_set = Audit::set_mysql_session_parameter('php_user_name',$_SESSION['username'],$db; }
與Audit.class:
<?php
class Audit {
public static function set_mysql_session_parameter($parameter_name,$parameter_value, $db) {
$query = "SET @" . $parameter_name . " = '" .$parameter_value. "';";
$result = $db->query($query);
return $result;
}
}
?>
php_user_name變量是如何填充的? – fancyPants
檢查我的編輯。我還想提一提的是,如果我使用@php_user_ip與用戶名相同的方式,則在兩種情況下(在插入觸發器和更新觸發器之後)插入IP。 – rob1n