2012-02-28 4 views
1

Im пытается «синхронизировать» внешний скрипт форума (SMF) с моим сайтом. Thats означает, что когда пользователь регистрируется на моем веб-сайте, триггер вводит данные пользователя (имя пользователя, пароль и адрес электронной почты) во внешней таблице участников форума. Что-то вроде этого, но это неправильно, 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 
+0

Что ошибка? Являются ли «hotaru_users» и «forum_members» частью одной базы данных или на другом сервере? – Matt

+0

@Yuck: это еще не было ясно в то время, когда я разместил свой комментарий .... –

+0

предположительно, таблица участников форума находится в другой БД? – horatio

ответ

1

Либо удалите BEGIN, END

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 ; 
+0

, который исправил ошибку sql и успешно ввел детали пользователя в таблицу участников форума, но я понял, что пароль хеширован, поэтому он хранит неправильный пароль. Есть ли способ справиться с этой хешей? –

+0

Где происходит хеширование? В коде приложения? С другим триггером, когда строка вставлена ​​в 'hotaru_users'? –

+0

Когда пользователи регистрируются на моем веб-сайте, пароль сохраняется в таблице hotaru_users, когда выполняется триггер выше, хешированный пароль вставляется в таблицу forum_members. Поэтому, когда я пытаюсь войти в форум, я получаю неправильный пароль. –

Смежные вопросы