Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je arrêter plusieurs e-mails OU nom d'utilisateur ?

Vous pouvez essayer de faire :

connect_db();
$check = mysql_query("SELECT 'User' validation
                        FROM school_users 
                       WHERE username = '$username' 
                       UNION ALL
                      SELECT 'Email' 
                        FROM school_users 
                       WHERE email = '$email'") or die(mysql_error());
$row = mysql_fetch_assoc($check);

if($row)
{
    if ($row["validation"] == 'User') {
            respond("error", "Sorry, the username ".$_POST['username']." is already in use. Please choose a different username.");}}
    else if ($row["validation"] == 'Email') {
        respond("error", "Sorry, the email ".$_POST['email']." is already in use. Please choose a different email.");}}
}

OU vous pouvez simplement le faire séparément...

//Validate UserName
connect_db();
$check = mysql_query("SELECT username FROM school_users WHERE username = '$username'") or die(mysql_error());
$check2 = mysql_num_rows($check);

if ($check2 != 0) {
    respond("error", "Sorry, the username ".$_POST['username']." is already in use. Please choose a different username.");}

//Validate Email
connect_db();
$checkEmail = mysql_query("SELECT email FROM school_users WHERE email = '$email'") or die(mysql_error());
$checkEmail2 = mysql_num_rows($check);

if ($checkEmail2 != 0) {
    respond("error", "Sorry, the email ".$_POST['email']." is already in use. Please choose a different email.");}

De plus, votre code est vulnérable aux attaques par injection SQL et vous utilisez des fonctions php obsolètes de MySQL. Si vous souhaitez améliorer votre code et le rendre moins vulnérable, consultez les liens suivants :

Pourquoi ne devrais-je pas utiliser les fonctions mysql_* en PHP ?

Que puis-je utiliser à la place des fonctions mysql_ ?

Déclarations préparées

Déclarations préparées avec MySQLi