Попробуйте следующее: - с использованием Case
SELECT p.Name, CASE WHEN isnull(i.Name,'') = '' THEN e.Name ELSE i.Name END
FROM Personnel p LEFT JOIN InternalRoles i ON p.InternalRoleID = i.ID
LEFT JOIN ExternalRoles e ON p.ExternalRoleID = e.ID
Вам необходимо добавить параметр $ uname в параметры привязки, вы забыли строку кода:
$password = md5($upass);
$stmt = $this->conn->prepare("INSERT INTO tbl_users(userName,userEmail,userPass,tokenCode,spol)
VALUES(:user_name, :user_mail, :user_pass, :active_code, :spol)");
$stmt->bindparam(":user_name",$uname);
$stmt->bindparam(":user_mail",$email);
$stmt->bindparam(":user_pass",$password);
$stmt->bindparam(":spol",$spol);
$stmt->bindparam(":active_code",$code);
$stmt->execute();
Не следует использовать MD5 в качестве хэша для пароля, Вы должны использовать встроенные в php функции password_hash () и password_verify ()