Juste un truc : Selon les SGBD, et surtout, selon leur configuration, mettre une chaîne de caractères ( '123' ) dans un champ de type numérique peut planter.
Je pense à ça quand je vois "'".$age."'" dans ta requête...
Dans ton SGBD, essaie de passer cette requête (exactement)
insert into participants (numpart, nom1, prenom, pseudo, age, sexe) values ('1000','Eldnewmann','Alfred','Freddo','45','M');
Et si ça plante, essaie :
insert into participants (numpart, nom1, prenom, pseudo, age, sexe) values (1000,'Eldnewmann','Alfred','Freddo',45,'M');
Si la première requête plante, vérifie que tu n'as pas de ' dans tes variables nom, prenom et pseudo.
Et si c'est pas le cas, vire ton ";" à la fin de la requête, la plus part des SGBD n'aiment pas ça quand on n'utilise pas directement outils de requêtage (ça fait planter une requête ODBC par exemple).
Et si c'est toujours pas ça, vire ce putain de magicquote de merde ! C'est une daube finie installée par défaut par PHP et qui fout la merde dans les requêtes, en passant des caractères interdits aux SGBD (syntaxe 100% proprio MySQL, supportée de justesse par Oracle : c'est des codes ISO, alors que le SQL n'a rien à voir avec ISO)