2014-12-28 53 views
0

我想檢查給定的用戶名是否存在於兩個給定表中的至少一箇中,如果它存在,那麼它會向他們顯示一個用戶名已存在的消息。我使用UNION語句編寫了一些代碼,但它並未向我顯示消息。你能告訴我請問我的代碼有什麼問題嗎? 感謝如何檢查註冊頁面中給定的用戶名是否存在於兩個表中的某一個

if (mysql_num_rows(queryMysql("SELECT * FROM doctor 
        WHERE username='$username' UNION SELECT * FROM patient 
        WHERE username='$username'"))) 
       $error = "That username already exists<br /><br />"; 
      else 
       { 
       queryMysql("INSERT INTO doctor (fname,lname,username,email,password,gender,age,specialty,doctorID) VALUES('$fname','$lname','$username','$email', '$password','$DoctorG','$DoctorAge','$specialty','$Doctor_ID')"); 
       die("<h4>Account created</h4>Please Log in.<br /><br />"); 
       } 
+0

'如果(mysql_num_rows($你真的應該考慮使用mysqli_*PDO代替mysql_* the_query_result)> 0)'? –

+0

@AvinashBabu你能更簡單地解釋一下你的評論嗎 – Waaaaat

+1

你能告訴我這個代碼在哪裏運行,我想用SQL注入漏洞來破解它。我只是在開玩笑說想要破解它,但你已經開放給人們去你的網站做一些討厭的事情。搜索SQL注入。 – Daniel

回答

1

你可以嘗試以下方法:

function exists($detail, $table, $column, $value) { 
    $stmt = mysql_query("SELECT `$detail` FROM `$table` WHERE `$column` = '$value'"); 

    if(mysql_num_rows($stmt) >= 1) { 
     return true; 
    } else { 
     return false; 
    } 
} 

if(exists('username', 'doctor', 'username', $username) === false && exists('username', 'patient', 'username', $username) === false) { 
    echo 'user doesn\'t exists'; 
} else { 
    echo 'user exists'; 
} 

,因爲它是depracted,將被刪除

相關問題