Вы должны проверять возвращаемые значения всех функций mysql. Это на самом деле должно дать вам некоторое представление о том, что ваш SQL неверен.
$sql = "INSERT INTO members
(phone, email, password, firstname, surname, country, nationality, dateofbirth, profession, membertype, dateregistered, agreedtoterms)
VALUES('$phone', '$email', '$password', '$firstname','$surname','$country','$nationality','$dateofbirth','$profession','$membertype','$dateregistered', '$agreedtoterms',)";
У вас есть дополнительный, в конце.
'$firstname','$surname','$country','$nationality','$dateofbirth','$profession','$membertype','$dateregistered', '$agreedtoterms')";