所以我有一个简单的简报注册表格。我可以将用户添加到数据库中,但我想说明重复的电子邮件。这就是我现在所拥有的。
$result = mysql_query("SELECT * FROM Users WHERE Email='$email'");
$num_rows = mysql_num_rows($result);
if($num_rows){
echo "You've already registered! Thanks anyway";
}
else{
mysqli_query($db_connection, "INSERT INTO Users (Name, Email) VALUES('$name' , '$email')");
echo "Thanks for signing up, $name.";
}
当我点击提交时,无论电子邮件是否相同,它都会将其添加到数据库中。
获得$ result的mysql_query很好。但是,由于某种原因,if语句不会被调用。知道为什么吗?
答案 0 :(得分:4)
"获得$ result的mysql_query很好"
您的数据库连接听起来是mysql_
- 您正在使用mysqli_
以下的mysqli_
功能。
完全使用mysql_query
,不要混用它们,他们不会。
旁注: 您的问题令人困惑。
您声明:当我点击提交时,它会将其添加到数据库中,无论电子邮件是否相同。 - 然后您说 $result
获取{ {1}}没问题。
这:if($num_rows)
应为if($num_rows >0)
将此用于您的数据库连接:
$db_connection = mysqli_connect("your_host","user","password","your_db");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
然后做:
$result = mysqli_query($db_connection, "SELECT * FROM Users WHERE Email='$email'");
$num_rows = mysqli_num_rows($result);
if($num_rows >0){
echo "You've already registered! Thanks anyway";
exit;
}
else{
mysqli_query($db_connection, "INSERT INTO Users (Name, Email) VALUES('$name' , '$email')");
echo "Thanks for signing up, $name.";
}
即:or die(mysqli_error($db_connection))
警告强>
<强> 脚注: 强>
如果您想避免重复,请将列设置为UNIQUE。