我正在创建自己的个人网站来销售音乐并帮助当地艺术家宣传他们的音乐。但是,我遇到了一个问题。
我创建了一个注册页面,新用户可以在该页面上注册。我首先尝试搜索数据库中是否存在电子邮件,以便表格中没有重复的电子邮件。我为此创建了一个if
语句,所以当语句为真(意味着找到重复的电子邮件)时,它会输出"电子邮件存在"但是当它没有从数据库中找到任何信息时,屏幕仍然是空白的,因为语句的其他部分应该启动并打印"没有找到电子邮件"。
有人能帮助我看看我哪里出错吗?这是我的代码:
if ($_POST['submit2']){
$fname = $_POST['Fname'];
$sname = $_POST['Sname'];
$email = $_POST['Emailaddress'];
$pass = $_POST['newpassword'];
$sql= "select * from cust_information where email = '$email'";
$results = mysqli_query($conn, $sql) or die(mysqli_error($conn));
$row = mysqli_fetch_array($results) or die(mysqli_error($conn));
if($row > 0){
echo "email exists";
}elseif ($row <0){
echo "email doesnt exist";
}else{
echo "nothing was done";
}
}
答案 0 :(得分:1)
删除elseif条件
if($row > 0){
echo "email exists";
}else{
echo "email doesnt exist";
}
答案 1 :(得分:1)
首先,您的代码容易受到SQL injection的攻击,您需要to prevent it
其次,您的行$row = mysqli_fetch_array
将返回一个数组,因此比较$array > 0
或$array < 0
无效。更好地比较count($row) > 0
或count($row) === 0
,它将比较返回的行数
答案 2 :(得分:1)
这就是你所需要的:
if(count($row) > 0)
{
echo "email exists";
}
else
echo "email doesnt exist";
}
答案 3 :(得分:0)
响应将始终为1或0,它永远不会是其他任何东西。如果数组为null,那么这是一个不同的问题,但你不应该把它放在else中。
if($row > 0){
echo "email exists";
}
else{
echo "email does not.";
}
我还建议使用PDO http://php.net/manual/en/book.pdo.php。您当前的代码让您对SQL注入完全开放。