![](/img/trans.png)
[英]Check if email already exists and FILTER_VALIDATE_EMAIL in same function
[英]Trying to check if an email with the same value already exists
我试图这样做,以便在将数据插入数据库之前检查数据库中是否已存在电子邮件。
这是我的代码:
<?php
$servername = "servername";
$username = "username";
$password = "password";
$dbname = "dbname";
$Mail = $_POST['email'];
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//Inputed in E-Mail Field
$Mail = $_POST['email'];
$SearchEmail = $conn->query("SELECT (Mail) FROM betakey WHERE Mail = '$Mail'");
if ($SearchEmail->num_rows > 0) {
print "That Email is already registered for the closed alpha";
}
else {
$conn->query("INSERT INTO betakey VALUES ('$Mail')");
}
$conn->close();
?>
当我访问页面时,它不会给我任何错误,但也不会回显它的存在或不存在时插入数据。
问题出在您的插入查询中。 插入查询的结构始终如下所示。
INSERT INTO table_name(column1,column2,column3,...)VALUES(value1,value2,value3,...)请参阅: http : //www.w3schools.com/php/php_mysql_insert.asp
将其应用于您的代码,将得到以下结果。
<?php
$servername = "servername";
$username = "username";
$password = "password";
$dbname = "dbname";
$Mail = $_POST['email'];
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//Inputed in E-Mail Field
$Mail = $_POST['email'];
$SearchEmail = $conn->query("SELECT count(Mail) FROM betakey WHERE Mail = '$Mail'");
if ($SearchEmail->num_rows > 0) {
print "That Email is already registered for the closed alpha";
}
else {
$conn->query("INSERT INTO betakey (Mail) VALUES ('$Mail')");
}
$conn->close();
?>
我建议您删除两个'$ Mail = $ _POST ['email'];'中的一个,因为以相同的方式两次声明一个变量是没有用的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.