Zelfs als u een AFTER-trigger gebruikt, is de rij nog niet vastgelegd. Maar sys_exec() keert pas terug als het php-script wordt afgesloten, dus de AFTER-trigger kan niet worden voltooid, daarom kun je de INSERT ook niet vastleggen.
Dit is zo ontworpen. U kunt immers meer handelingen binnen dezelfde transactie doen, of u kunt de transactie terugdraaien. Dat is het probleem met het aanroepen van externe processen vanuit een trigger:externe processen kunnen geen gegevens zien binnen het bereik van de transactie in de database.
Je zou deze taak niet met een trigger moeten doen. In het beste geval zou je de trigger moeten gebruiken om een "vlag"-kolom in te stellen en vervolgens een extern proces te schrijven om naar rijen te zoeken met de vlag ingesteld en dan dat PHP-script aan te roepen. Op die manier worden alleen rijen verwerkt die met succes zijn ingevoegd EN vastgelegd.