2014-04-27 37 views
-2

我正在創建註冊頁面,並且在檢查用戶名是否在mysql表中已準備就緒時遇到問題。這裏是我使用的代碼:PHP如何檢查數據庫中的值是否已準備就緒

$check = mysqli_query($con,"SELECT * FROM users 
WHERE username='$username'"); 

if(!empty($check)){ 
    $_SESSION['error'] = "Username allready taken!"; 
    header('Location: ./?page=signup') ; 
} 

任何人都可以幫助我嗎?

+1

有sql注入危險。 –

+0

您需要閱讀您正在使用的函數(mysqli_query)的手動條目。 –

+0

如果在MySQL中將'username'列設置爲'UNIQUE',會發生什麼? – hjpotter92

回答

-1

好的人,所以我理解了它,我的自我,這裏是最後的awnser:

$sql = mysqli_query($con, "SELECT * FROM users 
     WHERE username='$usr' 
     LIMIT 1"); 

if(mysqli_num_rows($sql) == 1){ 
    $_SESSION['error'] = "Username allready taken!"; 
    header('Location: ./?page=signup') ; 
} 
2
$userExists = (mysqli_num_rows($check) > 0); 
2

您應該使用預處理語句來編寫查詢。但作爲原料的mysqli無法使用他們,你最好使用PDO您已成功未能awnser我的問題

$stmt = $pdo->prepare("SELECT 1 FROM users WHERE username=?"); 
$stmt->execute([$username]); 
$check = $stmt->fetchColumn(); 
if($check)){ 
    $_SESSION['error'] = "Username allready taken!"; 
    header('Location: ./?page=signup') ; 
} 
相關問題