I trigger si usano se a fronte di un'operazione eseguita sul db, questo deve "reagire" sempre e sempre allo stesso modo all'operazione avvenuta.
Tra i vantaggi di questo sistema c'è il fatto che se devi eseguire l'operazione che determina tale reazione in molte parti del sito, non devi ricordarti ogni volta di chiamare la funzione php che eseguirà l'ulteriore manipolazione dei dati. Così se un doani dovessi aggiungere tale operazione in un altra parte del sito, il trigger sarà già lì pronto.
Per quanto riguarda i comportamenti inattesi, basta scrivere bene il trigger, così come dovresti stare attento a scrivere bene la funzione PHP equivalente, quindi da questo punto di vista non ci sono differenze.
Gestire una funzione PHP probabilmente è più comodo, ma il modo corretto di procedere sarebbe utilizzando il trigger.

Rispondi quotando