Joomla.it Forum

Non solo Joomla... => Database => : serpicomania 08 Jan 2010, 11:20:02

: [RISOLTO]Trigger che inserisce utente su 2° database
: serpicomania 08 Jan 2010, 11:20:02
Sto cercando di implementare su phpmyadmin un trigger sul database di joomla che ogni volta che inserisco un utente registered da amministratore joomla salva su un secondo database lo stesso utente appena inserito. Vorrei chiedervi come impostare la sintassi, io per il momento ho pensato a questa ma dubito che funzioni (ve la posto per rendere l'idea di quello che voglio fare):
:
CREATE TRIGGER insertuser
AFTER INSERT ON jos_users
FOR EACH ROW
BEGIN
INSERT INTO secondodb.centro VALUES (SELECT @e-mail FROM gajoomla.jos_users WHERE gajoomla.email=NEW.email, SELECT @gajoomla.password FROM gajoomla.jos_users WHERE gajoomla.email=NEW.email);
END;
: Re:Trigger che inserisce utente su 2° database
: serpicomania 08 Jan 2010, 12:06:12
il trigger che sono riuscito ad inserire correttamente è questo (la sintassi è quella che mi da quando vado a modificarlo una volta inserito su phpmyadmin):
:
DROP TRIGGER IF EXISTS `gajoomla`.`insertuser`//
CREATE TRIGGER `gajoomla`.`insertuser` AFTER INSERT ON `gajoomla`.`jos_users`
 FOR EACH ROW BEGIN
INSERT INTO secondodb.utenti VALUES ('NEW.email','NEW.password');
END
//
pero quando vado a inserire un utente da amministratore in joomla mi da jtableuser::storicizzazione fallita (anche se in realtà nel db lo registra) e soprattutto non inserisce i dati nel secondo DB.
: Re:Trigger che inserisce utente su 2° database
: 56francesco 08 Jan 2010, 12:11:45
c'è un articolo nel sito che descrive qualcosa del genere..
prova a  cercarlo, non nel forum ma nel sito..
se lo trovi e risolvi magari ricordati di indicarlo anche qui come soluzione..

: Re:Trigger che inserisce utente su 2° database
: serpicomania 08 Jan 2010, 12:25:30
RISOLTO
:
DROP TRIGGER IF EXISTS `dbjoomla`.`insertuser`//
CREATE TRIGGER `dbjoomla`.`insertuser` AFTER INSERT ON `dbjoomla`.`jos_users`
 FOR EACH ROW BEGIN
INSERT INTO secondodb.utenti(nome_utente, pwd) VALUES (NEW.email, NEW.password);
END
//

importante è non chiamare le colonne delle tabelle interessate con lo stesso nome altrimenti (stranamente) phpmyadmin da errore