Триггер MySQL «After Insert» продолжает вставлять нули
Я действительно надеюсь, что кто-то может помочь мне с этим, потому что он мучил меня в течение нескольких дней. У меня есть триггер после вставки в моей таблице пользователей, который вставляет запись в таблицу аудита после каждой вставки. Это работает нормально, если я в командной строке вручную выполнить оператор вставки. Однако, когда моя веб-форма вставляется в таблицу, все значения, вставленные в таблицу аудита, являются пустыми. Я думаю, может быть, это проблема с разрешениями, поэтому я добавил CURRENT_USER (), а также USER () в триггер, который будет вставлен в таблицу аудита. Это показывает, что триггер выполняется пользователем «admin», который является владельцем триггера.
Вот мой триггер:
DELIMITER ^^
CREATE TRIGGER UsersInsert AFTER INSERT ON Users
FOR EACH ROW
BEGIN
INSERT INTO `users_audit` (`username`, `address`, `email`)
VALUES
(USER(), NEW.address, NEW.email);
END
^^
Это вставит следующее в таблицу аудита: admin @ localhost, null, null
А вот разрешения для пользователя с правами администратора:
GRANT ALL PRIVILEGES ON `MyDB`.* TO 'admin'@'localhost' WITH GRANT OPTION
Как я уже сказал, он отлично работает из командной строки mysql. Но по какой-то причине «НОВЫЕ» значения являются нулевыми при выполнении из веб-формы.
Пожалуйста помоги. Заранее спасибо.
ОБНОВЛЕНИЕ 6/2/2013:
Я попробовал подобный триггер, но с «AFTER UPDATE», и он работал правильно. Таким образом, проблема изолирована для вставки. И это также доказывает, что это не проблема разрешения.