如何从php session(userid)中获取字段值以在mysql触发器中使用它
我的触发器:
BEGIN
IF NEW.nombre <> OLD.nombre THEN
INSERT INTO socios_history (socio_id,tabla,campo, old_value, new_value,lstuser,updated) VALUES (old.socio_id,'usuarios','nombre',old.nombre,new.nombre,XXXXX,now());
END IF;
IF NEW.email <> OLD.email THEN
INSERT INTO socios_history (socio_id,tabla,campo, old_value, new_value,lstuser,updated) VALUES (old.socio_id,'usuarios','email',old.email,new.email,XXXXX,now());
END IF;
END
XXXXXX将是来自$_SESSION["userid"];
答案 0 :(得分:0)
我不确定你的意思。如果你能稍微清理一下你的问题会很棒。从目前为止我想要从你的会话中检索存储的值。
在登录期间,您应该将用户的用户名基本上存储在会话变量中:
....mysql query checking for login
if login success
$_SESSION['userid'] = $username;
然后在你的触发器中检索它为它创建一个变量
$userid = $_SESSION['userid'];
IF NEW.nombre <> OLD.nombre THEN INSERT INTO socios_history (socio_id,tabla,campo, old_value, new_value,lstuser,updated) VALUES (old.socio_id,'usuarios','nombre','old.nombre','new.nombre','$userid',now());
答案 1 :(得分:0)
在建立连接时,可以想象在MySQL中设置变量。 (我可以验证SQL是否有效;没有测试过用PHP做过。)
$set_id = $pdo->prepare('SET @user_id = ?');
$set_id->execute([$_SESSION['userid']]);
让您的触发器使用@user_id
。
请注意,这可能会因持久连接而变得古怪。