我正在尝试验证用户名,以确保我的数据库中不存在相同的用户名。我正在尝试使用准备好的陈述。
我现在要做的是通过检查STMT返回的内容来查看帖子是否存在。我不确定我是否会朝这个方向努力。
我做错了什么?
编辑:虽然我尝试过有人建议的内容,但我仍然在数据库中添加重复的用户名。
if (empty($username))
{
$usernameError = "Required!";
}
else if (preg_match('/^[A-Z \'.-]{2,20}$/i', $username))
{
if ($stmt1 = $dbc->prepare("SELECT username FROM users WHERE username = ?"))
{
$stmt1->bind_param('s', $username);
$stmt1->execute();
if($stmt1->num_rows>0)
{
$usernameError = "Username already exists!";
}
else
{
$usernameError = "";
}
$stmt1->close();
}
}
else
{
$usernameError = "Incorrect Username!";
}
答案 0 :(得分:2)
而不是使用if($stmt != FALSE)
使用if($stmt->num_rows>0)
if($stmt->num_rows>0){
$usernameError = "Username already exists!";
}else{
$usernameError = "";
}
答案 1 :(得分:0)
使用fetch()
方法有效。
(发帖因为无法删除带答案的问题)
if($stmt->fetch())
{
$usernameError = "Username already exists!";
}
else
{
$usernameError = "";
}