【问题标题】:PHP, Checking if an Email is already in databasePHP,检查电子邮件是否已在数据库中
【发布时间】:2015-04-29 02:51:14
【问题描述】:

我的 php 代码有问题。我在这里所做的是一个表单,它被发送到该文件并将其输入数据库。如果电子邮件已经在帐户的数据库中,则它不会进入数据库。我遇到的麻烦是当该电子邮件已经在数据库中时,我想打印出“并且该电子邮件的帐户已经创建”,并在将电子邮件插入数据库时​​打印出“帐户已创建”。它的问题是无论我在创建新帐户时输入什么电子邮件,即使我输入一个新数据库的电子邮件,它也会运行 if 语句。为了清楚起见,如果是新电子邮件,数据库将输入电子邮件,但是我的代码将自动使用 if 语句。

这是我在 php 中的代码:

$fName=$_POST['fName'];
$lName=$_POST['lName'];
$email=$_POST['email'];
$password=$_POST['password'];
$state=$_POST['state'];
$zip=$_POST['zip'];
$address1=$_POST['address1'];

Print"<h3>";
Print"<a href ='projectHome.php'>Store Home&nbsp;&nbsp;&nbsp;</a>";
Print"<a href ='createAccount.php'>Create an Account&nbsp;&nbsp;&nbsp;   </a>";
Print"<a href ='login.php'>Login&nbsp;&nbsp;&nbsp;</a>";
Print"<a href='BrowseCategories.php'>Browse Categories&nbsp;&nbsp;&nbsp; </a>";
Print"<a href='search.php'>Search for a book&nbsp;&nbsp;&nbsp; </a>";
Print"<a href='orders.php'>Orders&nbsp;&nbsp;&nbsp; </a>";
Print"<a href ='contactUs.php'>Contact Us&nbsp;&nbsp;&nbsp;</a>";
Print"<a href ='index.html'>Home(index)&nbsp;&nbsp;&nbsp;</a>";
Print"</h3>";


$query="insert into Customers(Email,Passwd,FirstName,LastName,Address1,ZipCode,State) VALUES ('$email','$password','$fName','$lName','$address1',$zip,'$state')";
mysql_query($query);

$query="select * from Customers where Email = '$email'";
$result=mysql_query($query);
$numOfRows=mysql_numrows($result);
if($numOfRows==1)
{
    print"An account with that email is already created..<a href ='createAccount.php'>Please enter a new account email.</a>";
    print"<a href ='createAccount.php'></a>";

}
else
{
    print"Account created.";
}


@mysql_close($connection);

谢谢!

【问题讨论】:

  • 您的插入发生在 在选择之前。用马换马车;-)
  • mysql_num_rows() 不是 mysql_numrows() - 你应该趁机升级到 mysqli 或 PDO
  • 你在插入后检查,所以db中总会有那个地址
  • 哦,看起来;我们的 cmets 已转换。 vvvvvvvvvvvvvvvvvvvvvv
  • @Fred-ii- 非常感谢!这解决了它!

标签: php mysql


【解决方案1】:

将您的插入查询移至您的 else

$query="select * from Customers where Email = '$email'";
$result=mysql_query($query);
$numOfRows=mysql_num_rows($result);
if($numOfRows==1)
{
print"An account with that email is already created..<a href ='createAccount.php'>Please enter a new account email.</a>";
print"<a href ='createAccount.php'></a>";

}
else
{
$query="insert into Customers(Email,Passwd,FirstName,LastName,Address1,ZipCode,State) VALUES ('$email','$password','$fName','$lName','$address1',$zip,'$state')";
mysql_query($query);
print"Account created.";
}

【讨论】:

  • mysql_num_rows()
猜你喜欢
  • 2019-09-17
  • 2013-06-08
  • 2014-03-15
  • 2014-05-10
  • 2021-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多