我需要为表更改创建审计记录。对于我用这个触发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