【问题标题】:How to create a trigger to insert new users details to another table?如何创建触发器以将新用户详细信息插入另一个表?
【发布时间】:2012-02-28 19:30:42
【问题描述】:

我正在尝试将外部论坛脚本 (SMF) 与我的网站“同步”。 这意味着,当用户在我的网站上注册时,触发器会在外部论坛成员表中插入用户详细信息(用户名、密码和电子邮件)。 类似的东西,但它是错误的,sql错误。

CREATE TRIGGER forumReg 
AFTER INSERT ON hotaru_users 
FOR EACH ROW
BEGIN
    INSERT INTO forum_members (member_name, email_address, passwd)
    VALUES (NEW.user_username, NEW.user_email, NEW.user_password);
END

hotaru_users 是我的网站用户表, forum_members 是外部论坛用户表, 两个表都在同一个mysql数据库中

错误

Erro

consulta SQL:

CREATE TRIGGER forumReg AFTER INSERT ON hotaru_users
FOR EACH
ROW
BEGIN
INSERT INTO forum_members( member_name, email_address, passwd )
VALUES (
NEW.user_username, NEW.user_email, NEW.user_password
);

Mensagens do MySQL : Documentação
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6 

【问题讨论】:

  • 错误是什么? “hotaru_users”和“forum_members”是同一个数据库的一部分,还是在不同的服务器上?
  • @Yuck:我发表评论时还不清楚....
  • 大概,论坛成员表在不同的数据库中?

标签: mysql sql triggers user-registration


【解决方案1】:

要么删除BEGINEND

CREATE TRIGGER forumReg 
AFTER INSERT ON hotaru_users 
FOR EACH ROW
    INSERT INTO forum_members (member_name, email_address, passwd)
    VALUES (NEW.user_username, NEW.user_email, NEW.user_password);

或更改创建触发器的分隔符:

DELIMITER $$
CREATE TRIGGER forumReg 
AFTER INSERT ON hotaru_users 
FOR EACH ROW
BEGIN
    INSERT INTO forum_members (member_name, email_address, passwd)
    VALUES (NEW.user_username, NEW.user_email, NEW.user_password);
END 
$$
DELIMITER ;

【讨论】:

  • 修复了 sql 错误并成功在论坛成员表中插入了用户详细信息,但我发现密码是经过哈希处理的,因此它存储了错误的密码。有没有办法处理这个哈希的事情?
  • 哈希在哪里完成?在应用程序代码中?在hotaru_users中插入行时使用另一个触发器?
  • 当用户注册到我的网站时,密码被哈希存储在hotaru_users表中,当上面的触发器被执行时,哈希密码被插入到forum_members表中。所以当我尝试登录论坛时,我得到了错误的密码。
  • 插入forum_members时是否再次hash?那么,它是双重哈希的吗?
  • 不,它完全等于 hotaru_users 中的值,它不是双重哈希。但我认为我的网站和 SMF 中使用的哈希类型不同,所以我输入的密码不正确。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-23
  • 1970-01-01
  • 2013-12-31
  • 1970-01-01
  • 2016-05-18
  • 1970-01-01
相关资源
最近更新 更多