2017-08-03 194 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 **。 –

相关问题