服务器端电子邮件已存在于PHP中
我有一个表单和字段是姓名、电子邮件、密码。客户端验证工作正常。我正在进行服务器端验证 我从其他方面得到了这个问题。为了进行测试,我添加了服务器端电子邮件已存在于PHP中,php,mysql,Php,Mysql,我有一个表单和字段是姓名、电子邮件、密码。客户端验证工作正常。我正在进行服务器端验证 我从其他方面得到了这个问题。为了进行测试,我添加了echo$email,我得到了email id。现在,email id将检查数据库是否存在。如果存在,则显示错误;如果不存在,则显示不存在 if(condition){} elseif(condition){} elseif(condition){} elseif(condition){} else{ echo $email; // here I am
echo$email
,我得到了email id。现在,email id将检查数据库是否存在。如果存在,则显示错误;如果不存在,则显示不存在
if(condition){}
elseif(condition){}
elseif(condition){}
elseif(condition){}
else{
echo $email; // here I am able to display the email id
$sql_check_email="SELECT email FROM register WHERE email =?";
$stmt = $conn->prepare($sql_check_email);
$stmt->bind_param("s", $email);
$stmt->execute();
$stmt->bind_result($email);
$rows = $stmt->fetch();
$total_rows = count($rows);
if( $total_rows > 0 ){
$_SESSION['email_error']= 'This email is alredy register with us';
header('location:register');
}else{
echo $email;// why my email id not displaying here?
echo $name;
echo $password;
echo $date_of_added;
echo"Not exist";
}
你的问题是:
$stmt->bind_result($email);
该行用查询结果替换变量。只需为结果使用另一个变量
您还错误地使用了
fetch
result,它只返回fetch状态的true/false/null
值。使用bind\u result
bind变量获取结果。如果我能分享下一次投票的原因,这样我以后就不会重复同样的操作,那对我来说会很好$email
将重置为查询结果,显然在else中,数据库中没有找到匹配项。。。否则,您将不在Elsey中您没有存储结果(如果有的话)。编辑:在else中,查阅关闭此操作的副本。。。。没有设置电子邮件,因为很明显,在上找不到该电子邮件database@RiggsFolly是的,bind_param
那不管用吗?是的,没错。我尝试了$stmt->bind\u result($email\u 1);我在其他部分收到了我的电子邮件@副总裁阿尔斯,你能帮我找出提取结果的错误吗?$stmt->bind\u result($email)$行=$stmt->fetch()代码>绑定并获取查询结果。如果没有找到匹配的行,则您没有将任何内容绑定到$email
请参阅。您可以将返回值用作有数据的标志,但不能用作获取的数据集。获取的数据集将位于bind\u结果
变量中。