Potrebbe non essere d'aiuto, ma perché leghi solo 3 variabili, quando ce ne sono 4? Non posso dire di avere esperienza nel farlo in PHP, ma in Perl e Oracle genererebbe un errore. Proverei a collegare i 2 SET e 1 WHERE, a rimuovere il primo compito e vedere se funziona.