2017-08-03 146 views
0

我是PHP新手,正在編寫一個非常基本的註冊表單,它將信息轉儲到MySQL數據庫中。不過,即使名稱已被佔用,我仍然遇到問題,我的程序仍將該帳戶添加到SQL表中。 這是我的代碼,以檢查是否存在名稱:PHP - 檢查索引是否已經存在於SQL中

$sql = "SELECT * FROM accounts WHERE name = '$name'"; 
$result = $conn->query($sql); 

if (mysql_fetch_array($result) === true) { 
    die("Error: Username has been taken"); 
} else { 
//register account 
} 

我每次運行此,無論名稱是什麼,程序運行的代碼else語句內塊。如果需要,我可以提供更多信息。

+0

不要使用'mysql'擴展名https://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php – Hackerman

+0

也要了解'prepared statements' ... – Hackerman

+1

它似乎你是混合mysqli和mysql – Noman

回答

0

如果您使用的是mysqli則使用。

if ($result->num_rows > 0) { 
die("Error: Username has been taken"); 
} 
else { 
// register here; 
} 

P.S不使用mysql read here

0

您可以更改表格並添加使該字段唯一。

+0

我可以,但我仍然希望能夠檢查索引是否存在 –

+0

嘗試** mysql_fetch_assoc **。 –

相關問題